aboutsummaryrefslogtreecommitdiff
path: root/package/libpam-tacplus/0002-Drop-u_char-and-u_short.patch
blob: 1921938356790f4d239163e1768e258aef400592 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
From b6ec2208640456a9422a74b4f39a50ddb65e4970 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 25 Jan 2020 10:42:20 +0100
Subject: [PATCH] Drop u_char and u_short

Replace u_char and u_short by unsigned char and unsigned short to fix
build on musl

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Retrieved from:
https://github.com/kravietz/pam_tacplus/commit/b6ec2208640456a9422a74b4f39a50ddb65e4970]
---
 libtac/include/libtac.h  |  8 ++--
 libtac/include/tacplus.h | 88 ++++++++++++++++++++--------------------
 libtac/lib/acct_r.c      |  4 +-
 libtac/lib/acct_s.c      | 20 ++++-----
 libtac/lib/attrib.c      |  6 +--
 libtac/lib/authen_r.c    |  2 +-
 libtac/lib/authen_s.c    | 14 +++----
 libtac/lib/author_r.c    | 22 +++++-----
 libtac/lib/author_s.c    | 18 ++++----
 libtac/lib/cont_s.c      |  4 +-
 libtac/lib/crypt.c       | 10 ++---
 libtac/lib/header.c      |  2 +-
 12 files changed, 99 insertions(+), 99 deletions(-)

diff --git a/libtac/include/libtac.h b/libtac/include/libtac.h
index 4922bf7..d8c7289 100644
--- a/libtac/include/libtac.h
+++ b/libtac/include/libtac.h
@@ -96,7 +96,7 @@ typedef unsigned int u_int32_t;
 
 struct tac_attrib {
 	char *attr;
-	u_char attr_len;
+	unsigned char attr_len;
 	struct tac_attrib *next;
 };
 
@@ -169,12 +169,12 @@ int tac_connect_single(const struct addrinfo *, const char *, struct addrinfo *,
 char *tac_ntop(const struct sockaddr *);
 
 int tac_authen_send(int, const char *, const char *, const char *, const char *,
-		u_char);
+		unsigned char);
 int tac_authen_read(int, struct areply *);
 int tac_cont_send_seq(int, const char *, int);
 #define tac_cont_send(fd, pass) tac_cont_send_seq((fd), (pass), 3)
-HDR *_tac_req_header(u_char, int);
-void _tac_crypt(u_char *, const HDR *);
+HDR *_tac_req_header(unsigned char, int);
+void _tac_crypt(unsigned char *, const HDR *);
 void tac_add_attrib(struct tac_attrib **, char *, char *);
 void tac_free_attrib(struct tac_attrib **);
 char *tac_acct_flag2str(int);
diff --git a/libtac/include/tacplus.h b/libtac/include/tacplus.h
index 90d7c8b..2ac8848 100644
--- a/libtac/include/tacplus.h
+++ b/libtac/include/tacplus.h
@@ -24,7 +24,7 @@
 
 /* All tacacs+ packets have the same header format */
 struct tac_plus_pak_hdr {
-    u_char version;
+    unsigned char version;
 
 #define TAC_PLUS_MAJOR_VER_MASK 0xf0
 #define TAC_PLUS_MAJOR_VER      0xc0
@@ -35,14 +35,14 @@ struct tac_plus_pak_hdr {
 #define TAC_PLUS_MINOR_VER_1 0x01
 #define TAC_PLUS_VER_1  (TAC_PLUS_MAJOR_VER | TAC_PLUS_MINOR_VER_1)
 
-    u_char type;
+    unsigned char type;
 
 #define TAC_PLUS_AUTHEN 0x01
 #define TAC_PLUS_AUTHOR	0x02
 #define TAC_PLUS_ACCT   0x03
 
-    u_char seq_no;        /* packet sequence number */
-    u_char encryption;    /* packet is encrypted or cleartext */
+    unsigned char seq_no;        /* packet sequence number */
+    unsigned char encryption;    /* packet is encrypted or cleartext */
 
 #define TAC_PLUS_ENCRYPTED_FLAG      0x00    /* packet is encrypted */
 #define TAC_PLUS_UNENCRYPTED_FLAG    0x01    /* packet is unencrypted */
@@ -59,21 +59,21 @@ typedef struct tac_plus_pak_hdr HDR;
 
 /* Authentication packet NAS sends to us */ 
 struct authen_start {
-    u_char action;
+    unsigned char action;
 
 #define TAC_PLUS_AUTHEN_LOGIN    0x01
 #define TAC_PLUS_AUTHEN_CHPASS   0x02
 #define TAC_PLUS_AUTHEN_SENDPASS 0x03 /* deprecated */
 #define TAC_PLUS_AUTHEN_SENDAUTH 0x04
 
-    u_char priv_lvl;
+    unsigned char priv_lvl;
 
 #define TAC_PLUS_PRIV_LVL_MIN  0x00
 #define TAC_PLUS_PRIV_LVL_MAX  0x0f
 #define TAC_PLUS_PRIV_LVL_USER 0x01
 #define TAC_PLUS_PRIV_LVL_ROOT 0x0f
 
-    u_char authen_type;
+    unsigned char authen_type;
 
 #define TAC_PLUS_AUTHEN_TYPE_ASCII  0x01
 #define TAC_PLUS_AUTHEN_TYPE_PAP    0x02
@@ -81,7 +81,7 @@ struct authen_start {
 #define TAC_PLUS_AUTHEN_TYPE_ARAP   0x04
 #define TAC_PLUS_AUTHEN_TYPE_MSCHAP 0x05
 
-    u_char service;
+    unsigned char service;
 
 #define TAC_PLUS_AUTHEN_SVC_NONE    0x00
 #define TAC_PLUS_AUTHEN_SVC_LOGIN   0x01
@@ -94,19 +94,19 @@ struct authen_start {
 #define TAC_PLUS_AUTHEN_SVC_NASI    0x08
 #define TAC_PLUS_AUTHEN_SVC_FWPROXY 0x09
 
-    u_char user_len;
-    u_char port_len;
-    u_char r_addr_len;
-    u_char data_len;
+    unsigned char user_len;
+    unsigned char port_len;
+    unsigned char r_addr_len;
+    unsigned char data_len;
 };
 
 #define TAC_AUTHEN_START_FIXED_FIELDS_SIZE 8
 
 /* Authentication continue packet NAS sends to us */ 
 struct authen_cont {
-    u_short user_msg_len;
-    u_short user_data_len;
-    u_char flags;
+    unsigned short user_msg_len;
+    unsigned short user_data_len;
+    unsigned char flags;
 
 #define TAC_PLUS_CONTINUE_FLAG_ABORT 0x01
 
@@ -116,7 +116,7 @@ struct authen_cont {
 
 /* Authentication reply packet we send to NAS */ 
 struct authen_reply {
-    u_char status;
+    unsigned char status;
 
 #define TAC_PLUS_AUTHEN_STATUS_PASS    0x01
 #define TAC_PLUS_AUTHEN_STATUS_FAIL    0x02
@@ -127,12 +127,12 @@ struct authen_reply {
 #define TAC_PLUS_AUTHEN_STATUS_ERROR   0x07 
 #define TAC_PLUS_AUTHEN_STATUS_FOLLOW  0x21
 
-    u_char flags;
+    unsigned char flags;
 
 #define TAC_PLUS_AUTHEN_FLAG_NOECHO 0x01
 
-    u_short msg_len;
-    u_short data_len;
+    unsigned short msg_len;
+    unsigned short data_len;
 };
 
 #define TAC_AUTHEN_REPLY_FIXED_FIELDS_SIZE 6
@@ -158,29 +158,29 @@ struct authen_reply {
 #define AUTHEN_METH_RCMD       TAC_PLUS_AUTHEN_METH_RCMD
 
 struct acct {
-    u_char flags;
+    unsigned char flags;
 
 #define TAC_PLUS_ACCT_FLAG_MORE     0x01
 #define TAC_PLUS_ACCT_FLAG_START    0x02
 #define TAC_PLUS_ACCT_FLAG_STOP     0x04
 #define TAC_PLUS_ACCT_FLAG_WATCHDOG 0x08
 	    
-    u_char authen_method;
-    u_char priv_lvl;
-    u_char authen_type;
-    u_char authen_service;
-    u_char user_len;
-    u_char port_len;
-    u_char r_addr_len;
-    u_char arg_cnt;    /* the number of cmd args */
+    unsigned char authen_method;
+    unsigned char priv_lvl;
+    unsigned char authen_type;
+    unsigned char authen_service;
+    unsigned char user_len;
+    unsigned char port_len;
+    unsigned char r_addr_len;
+    unsigned char arg_cnt;    /* the number of cmd args */
 };
 
 #define TAC_ACCT_REQ_FIXED_FIELDS_SIZE 9
 
 struct acct_reply {
-    u_short msg_len;
-    u_short data_len;
-    u_char status;
+    unsigned short msg_len;
+    unsigned short data_len;
+    unsigned char status;
 
 #define TAC_PLUS_ACCT_STATUS_SUCCESS 0x1
 #define TAC_PLUS_ACCT_STATUS_ERROR   0x2
@@ -192,25 +192,25 @@ struct acct_reply {
 
 /* An authorization request packet */
 struct author {
-    u_char authen_method;
-    u_char priv_lvl;
-    u_char authen_type;
-    u_char service;
-
-    u_char user_len;
-    u_char port_len;
-    u_char r_addr_len;
-    u_char arg_cnt;    /* the number of args */
+    unsigned char authen_method;
+    unsigned char priv_lvl;
+    unsigned char authen_type;
+    unsigned char service;
+
+    unsigned char user_len;
+    unsigned char port_len;
+    unsigned char r_addr_len;
+    unsigned char arg_cnt;    /* the number of args */
 };
 
 #define TAC_AUTHOR_REQ_FIXED_FIELDS_SIZE 8
 
 /* An authorization reply packet */
 struct author_reply {
-    u_char status;
-    u_char arg_cnt;
-    u_short msg_len;
-    u_short data_len;
+    unsigned char status;
+    unsigned char arg_cnt;
+    unsigned short msg_len;
+    unsigned short data_len;
 
 #define TAC_PLUS_AUTHOR_STATUS_PASS_ADD  0x01
 #define TAC_PLUS_AUTHOR_STATUS_PASS_REPL 0x02
diff --git a/libtac/lib/acct_r.c b/libtac/lib/acct_r.c
index 44992e6..29ed901 100644
--- a/libtac/lib/acct_r.c
+++ b/libtac/lib/acct_r.c
@@ -110,7 +110,7 @@ int tac_acct_read(int fd, struct areply *re) {
     }
 
     /* decrypt the body */
-    _tac_crypt((u_char *) tb, &th);
+    _tac_crypt((unsigned char *) tb, &th);
 
     /* Convert network byte order to host byte order */
     tb->msg_len  = ntohs(tb->msg_len);
@@ -133,7 +133,7 @@ int tac_acct_read(int fd, struct areply *re) {
     /* save status and clean up */
     if(tb->msg_len) {
         msg=(char *) xcalloc(1, tb->msg_len+1);
-        bcopy((u_char *) tb+TAC_ACCT_REPLY_FIXED_FIELDS_SIZE, msg, tb->msg_len);
+        bcopy((unsigned char *) tb+TAC_ACCT_REPLY_FIXED_FIELDS_SIZE, msg, tb->msg_len);
         msg[(int)tb->msg_len] = '\0';
         re->msg = msg;      /* Freed by caller */
     }
diff --git a/libtac/lib/acct_s.c b/libtac/lib/acct_s.c
index db68067..4338ef2 100644
--- a/libtac/lib/acct_s.c
+++ b/libtac/lib/acct_s.c
@@ -50,14 +50,14 @@ int tac_acct_send(int fd, int type, const char *user, char *tty,
 
     HDR *th;
     struct acct tb;
-    u_char user_len, port_len, r_addr_len;
+    unsigned char user_len, port_len, r_addr_len;
     struct tac_attrib *a;
     int i = 0;    /* arg count */
     int pkt_len = 0;
     int pktl = 0;
     int w;    /* write count */
-    u_char *pkt=NULL;
-    /* u_char *pktp; */             /* obsolute */
+    unsigned char *pkt=NULL;
+    /* unsigned char *pktp; */             /* obsolute */
     int ret = 0;
 
     th = _tac_req_header(TAC_PLUS_ACCT, 0);
@@ -71,11 +71,11 @@ int tac_acct_send(int fd, int type, const char *user, char *tty,
         (tac_encryption) ? "yes" : "no", \
         tac_acct_flag2str(type));
         
-    user_len=(u_char) strlen(user);
-    port_len=(u_char) strlen(tty);
-    r_addr_len=(u_char) strlen(r_addr);
+    user_len=(unsigned char) strlen(user);
+    port_len=(unsigned char) strlen(tty);
+    r_addr_len=(unsigned char) strlen(r_addr);
 
-    tb.flags=(u_char) type;
+    tb.flags=(unsigned char) type;
     tb.authen_method=tac_authen_method;
     tb.priv_lvl=tac_priv_lvl;
     if (!*tac_login) {
@@ -96,7 +96,7 @@ int tac_acct_send(int fd, int type, const char *user, char *tty,
     tb.r_addr_len=r_addr_len;
 
     /* allocate packet */
-    pkt=(u_char *) xcalloc(1, TAC_ACCT_REQ_FIXED_FIELDS_SIZE);
+    pkt=(unsigned char *) xcalloc(1, TAC_ACCT_REQ_FIXED_FIELDS_SIZE);
     pkt_len=sizeof(tb);
 
     /* fill attribute length fields */
@@ -104,7 +104,7 @@ int tac_acct_send(int fd, int type, const char *user, char *tty,
     while (a) {
         pktl = pkt_len;
         pkt_len += sizeof(a->attr_len);
-        pkt = (u_char*) xrealloc(pkt, pkt_len);
+        pkt = (unsigned char*) xrealloc(pkt, pkt_len);
 
         /* see comments in author_s.c
         pktp=pkt + pkt_len;
@@ -132,7 +132,7 @@ int tac_acct_send(int fd, int type, const char *user, char *tty,
 #define PUTATTR(data, len) \
     pktl = pkt_len; \
     pkt_len += len; \
-    pkt = (u_char*) xrealloc(pkt, pkt_len); \
+    pkt = (unsigned char*) xrealloc(pkt, pkt_len); \
     bcopy(data, pkt + pktl, len);
 
     /* fill user and port fields */
diff --git a/libtac/lib/attrib.c b/libtac/lib/attrib.c
index b8a7d82..c148288 100644
--- a/libtac/lib/attrib.c
+++ b/libtac/lib/attrib.c
@@ -29,14 +29,14 @@ void tac_add_attrib(struct tac_attrib **attr, char *name, char *value) {
 
 void tac_add_attrib_pair(struct tac_attrib **attr, char *name, char sep, char *value) {
     struct tac_attrib *a;
-    u_char l1 = (u_char) strlen(name);
-    u_char l2;
+    unsigned char l1 = (unsigned char) strlen(name);
+    unsigned char l2;
     int total_len;
 
     if (value == NULL) {
         l2 = 0;
     } else {
-        l2 = (u_char) strlen(value);
+        l2 = (unsigned char) strlen(value);
     }
     total_len = l1 + l2 + 1; /* "name" + "=" + "value" */
 
diff --git a/libtac/lib/authen_r.c b/libtac/lib/authen_r.c
index cc03e9b..3ffdc4d 100644
--- a/libtac/lib/authen_r.c
+++ b/libtac/lib/authen_r.c
@@ -106,7 +106,7 @@ int tac_authen_read(int fd, struct areply *re) {
 	}
 
 	/* decrypt the body */
-	_tac_crypt((u_char *) tb, &th);
+	_tac_crypt((unsigned char *) tb, &th);
 
 	/* Convert network byte order to host byte order */
 	tb->msg_len = ntohs(tb->msg_len);
diff --git a/libtac/lib/authen_s.c b/libtac/lib/authen_s.c
index b33d954..3bbb51a 100644
--- a/libtac/lib/authen_s.c
+++ b/libtac/lib/authen_s.c
@@ -34,7 +34,7 @@
 
 /* assume digest points to a buffer MD5_LEN size */
 static void
-digest_chap(u_char digest[MD5_LBLOCK], uint8_t id,
+digest_chap(unsigned char digest[MD5_LBLOCK], uint8_t id,
             const char *pass, unsigned pass_len,
             const char *chal, unsigned chal_len) {
 
@@ -46,8 +46,8 @@ digest_chap(u_char digest[MD5_LBLOCK], uint8_t id,
      * for a single call.
      */
     MD5_Update(&mdcontext, &id, sizeof(id));
-    MD5_Update(&mdcontext, (const u_char *)pass, pass_len);
-    MD5_Update(&mdcontext, (const u_char *)chal, chal_len);
+    MD5_Update(&mdcontext, (const unsigned char *)pass, pass_len);
+    MD5_Update(&mdcontext, (const unsigned char *)chal, chal_len);
     MD5_Final(digest, &mdcontext);
 }
 
@@ -62,7 +62,7 @@ digest_chap(u_char digest[MD5_LBLOCK], uint8_t id,
  *             LIBTAC_STATUS_ASSEMBLY_ERR
  */
 int tac_authen_send(int fd, const char *user, const char *pass, const char *tty,
-		const char *r_addr, u_char action) {
+		const char *r_addr, unsigned char action) {
 
 	HDR *th; /* TACACS+ packet header */
 	struct authen_start tb; /* message body */
@@ -72,7 +72,7 @@ int tac_authen_send(int fd, const char *user, const char *pass, const char *tty,
 	int ret = 0;
 	char *chal = "1234123412341234";
 	char *token = NULL;
-	u_char *pkt = NULL;
+	unsigned char *pkt = NULL;
 	const uint8_t id = 5;
 
 	th = _tac_req_header(TAC_PLUS_AUTHEN, 0);
@@ -99,7 +99,7 @@ int tac_authen_send(int fd, const char *user, const char *pass, const char *tty,
 	r_addr_len = strlen(r_addr);
 
 	if (!strcmp(tac_login, "chap")) {
-		u_char digest[MD5_LBLOCK];
+		unsigned char digest[MD5_LBLOCK];
 
 		digest_chap(digest, id, pass, pass_len, chal, chal_len);
 
@@ -159,7 +159,7 @@ int tac_authen_send(int fd, const char *user, const char *pass, const char *tty,
 	}
 
 	/* build the packet */
-	pkt = (u_char *) xcalloc(1, bodylength + 10);
+	pkt = (unsigned char *) xcalloc(1, bodylength + 10);
 
 	bcopy(&tb, pkt + pkt_len, sizeof(tb)); /* packet body beginning */
 	pkt_len += sizeof(tb);
diff --git a/libtac/lib/author_r.c b/libtac/lib/author_r.c
index a677de0..19a72c9 100644
--- a/libtac/lib/author_r.c
+++ b/libtac/lib/author_r.c
@@ -43,7 +43,7 @@ int tac_author_read(int fd, struct areply *re) {
 	struct author_reply *tb = NULL;
 	size_t len_from_header, len_from_body;
 	ssize_t packet_read;
-	u_char *pktp = NULL;
+	unsigned char *pktp = NULL;
 	char *msg = NULL;
 	int timeleft = 0;
 	re->msg = NULL;
@@ -114,7 +114,7 @@ int tac_author_read(int fd, struct areply *re) {
 	}
 
 	/* decrypt the body */
-	_tac_crypt((u_char *) tb, &th);
+	_tac_crypt((unsigned char *) tb, &th);
 
 	/* Convert network byte order to host byte order */
 	tb->msg_len = ntohs(tb->msg_len);
@@ -127,7 +127,7 @@ int tac_author_read(int fd, struct areply *re) {
 	len_from_body = TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE + tb->msg_len
 			+ tb->data_len;
 
-	pktp = (u_char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE;
+	pktp = (unsigned char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE;
 
 	/* cycle through the arguments supplied in the packet */
 	for (r = 0; r < tb->arg_cnt && r < TAC_PLUS_MAX_ARGCOUNT;
@@ -141,7 +141,7 @@ int tac_author_read(int fd, struct areply *re) {
 			free(tb);
 			return re->status;
 		}
-		len_from_body += sizeof(u_char); /* add arg length field's size*/
+		len_from_body += sizeof(unsigned char); /* add arg length field's size*/
 		len_from_body += *pktp; /* add arg length itself */
 		pktp++;
 	}
@@ -160,8 +160,8 @@ int tac_author_read(int fd, struct areply *re) {
 	if (tb->msg_len) {
 		char *msg = (char *) xcalloc(1, tb->msg_len + 1);
 		bcopy(
-				(u_char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE
-						+ (tb->arg_cnt) * sizeof(u_char), msg, tb->msg_len);
+				(unsigned char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE
+						+ (tb->arg_cnt) * sizeof(unsigned char), msg, tb->msg_len);
 		msg[(int) tb->msg_len] = '\0';
 		re->msg = msg; /* freed by caller */
 	}
@@ -170,8 +170,8 @@ int tac_author_read(int fd, struct areply *re) {
 	if (tb->data_len) {
 		char *smsg = (char *) xcalloc(1, tb->data_len + 1);
 		bcopy(
-				(u_char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE
-						+ (tb->arg_cnt) * sizeof(u_char) + tb->msg_len, smsg,
+				(unsigned char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE
+						+ (tb->arg_cnt) * sizeof(unsigned char) + tb->msg_len, smsg,
 				tb->data_len);
 		smsg[(int) tb->data_len] = '\0';
 		TACSYSLOG(LOG_ERR, "%s: reply message: %s", __FUNCTION__, smsg);
@@ -190,7 +190,7 @@ int tac_author_read(int fd, struct areply *re) {
 		/*FALLTHRU*/
 
 	case TAC_PLUS_AUTHOR_STATUS_PASS_ADD: {
-		u_char *argp;
+		unsigned char *argp;
 
 		if (!re->msg)
 			re->msg = xstrdup(author_ok_msg);
@@ -198,8 +198,8 @@ int tac_author_read(int fd, struct areply *re) {
 
 		/* add attributes received to attribute list returned to
 		 the client */
-		pktp = (u_char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE;
-		argp = pktp + (tb->arg_cnt * sizeof(u_char)) + tb->msg_len
+		pktp = (unsigned char *) tb + TAC_AUTHOR_REPLY_FIXED_FIELDS_SIZE;
+		argp = pktp + (tb->arg_cnt * sizeof(unsigned char)) + tb->msg_len
 				+ tb->data_len;
 		TACSYSLOG(LOG_DEBUG, "Args cnt %d", tb->arg_cnt);
 		/* argp points to current argument string
diff --git a/libtac/lib/author_s.c b/libtac/lib/author_s.c
index d067e2c..db05008 100644
--- a/libtac/lib/author_s.c
+++ b/libtac/lib/author_s.c
@@ -37,14 +37,14 @@ int tac_author_send(int fd, const char *user, char *tty, char *r_addr,
 
 	HDR *th;
 	struct author tb;
-	u_char user_len, port_len, r_addr_len;
+	unsigned char user_len, port_len, r_addr_len;
 	struct tac_attrib *a;
 	int i = 0; /* attributes count */
 	int pkt_len = 0; /* current packet length */
 	int pktl = 0; /* temporary storage for previous pkt_len values */
 	int w; /* write() return value */
-	u_char *pkt = NULL; /* packet building pointer */
-	/* u_char *pktp; *//* obsolete */
+	unsigned char *pkt = NULL; /* packet building pointer */
+	/* unsigned char *pktp; *//* obsolete */
 	int ret = 0;
 
 	th = _tac_req_header(TAC_PLUS_AUTHOR, 0);
@@ -59,9 +59,9 @@ int tac_author_send(int fd, const char *user, char *tty, char *r_addr,
 					__FUNCTION__, user,
 					tty, r_addr, tac_encryption ? "yes" : "no");
 
-	user_len = (u_char) strlen(user);
-	port_len = (u_char) strlen(tty);
-	r_addr_len = (u_char) strlen(r_addr);
+	user_len = (unsigned char) strlen(user);
+	port_len = (unsigned char) strlen(tty);
+	r_addr_len = (unsigned char) strlen(r_addr);
 
 	tb.authen_method = tac_authen_method;
 	tb.priv_lvl = tac_priv_lvl;
@@ -83,7 +83,7 @@ int tac_author_send(int fd, const char *user, char *tty, char *r_addr,
 	tb.r_addr_len = r_addr_len;
 
 	/* allocate packet */
-	pkt = (u_char *) xcalloc(1, TAC_AUTHOR_REQ_FIXED_FIELDS_SIZE);
+	pkt = (unsigned char *) xcalloc(1, TAC_AUTHOR_REQ_FIXED_FIELDS_SIZE);
 	pkt_len = sizeof(tb);
 
 	/* fill attribute length fields */
@@ -91,7 +91,7 @@ int tac_author_send(int fd, const char *user, char *tty, char *r_addr,
 	while (a) {
 		pktl = pkt_len;
 		pkt_len += sizeof(a->attr_len);
-		pkt = (u_char*) xrealloc(pkt, pkt_len);
+		pkt = (unsigned char*) xrealloc(pkt, pkt_len);
 
 		/* bad method: realloc() is allowed to return different pointer
 		 with each call
@@ -120,7 +120,7 @@ int tac_author_send(int fd, const char *user, char *tty, char *r_addr,
 #define PUTATTR(data, len) \
     pktl = pkt_len; \
     pkt_len += len; \
-    pkt = (u_char*) xrealloc(pkt, pkt_len); \
+    pkt = (unsigned char*) xrealloc(pkt, pkt_len); \
     bcopy(data, pkt + pktl, len);
 
 	/* fill user and port fields */
diff --git a/libtac/lib/cont_s.c b/libtac/lib/cont_s.c
index e281567..50c01d9 100644
--- a/libtac/lib/cont_s.c
+++ b/libtac/lib/cont_s.c
@@ -41,7 +41,7 @@ int tac_cont_send_seq(int fd, const char *pass, int seq) {
 	int pass_len, bodylength, w;
 	int pkt_len = 0;
 	int ret = 0;
-	u_char *pkt = NULL;
+	unsigned char *pkt = NULL;
 
 	th = _tac_req_header(TAC_PLUS_AUTHEN, 1);
 
@@ -75,7 +75,7 @@ int tac_cont_send_seq(int fd, const char *pass, int seq) {
 	}
 
 	/* build the packet */
-	pkt = (u_char *) xcalloc(1, bodylength);
+	pkt = (unsigned char *) xcalloc(1, bodylength);
 
 	bcopy(&tb, pkt + pkt_len, TAC_AUTHEN_CONT_FIXED_FIELDS_SIZE); /* packet body beginning */
 	pkt_len += TAC_AUTHEN_CONT_FIXED_FIELDS_SIZE;
diff --git a/libtac/lib/crypt.c b/libtac/lib/crypt.c
index b3e3158..5bf0107 100644
--- a/libtac/lib/crypt.c
+++ b/libtac/lib/crypt.c
@@ -36,7 +36,7 @@
    Use data from packet header and secret, which
    should be a global variable */
 static void _tac_md5_pad(const HDR *hdr,
-        u_char *new_digest, u_char *old_digest)  {
+        unsigned char *new_digest, unsigned char *old_digest)  {
     unsigned tac_secret_len = strlen(tac_secret);
     MD5_CTX mdcontext;
 
@@ -45,8 +45,8 @@ static void _tac_md5_pad(const HDR *hdr,
 
     /* place session_id, key, version and seq_no in buffer */
     MD5_Init(&mdcontext);
-    MD5_Update(&mdcontext, (const u_char *) &hdr->session_id, sizeof(hdr->session_id));
-    MD5_Update(&mdcontext, (const u_char *) tac_secret, tac_secret_len);
+    MD5_Update(&mdcontext, (const unsigned char *) &hdr->session_id, sizeof(hdr->session_id));
+    MD5_Update(&mdcontext, (const unsigned char *) tac_secret, tac_secret_len);
     MD5_Update(&mdcontext, &hdr->version, sizeof(hdr->version));
     MD5_Update(&mdcontext, &hdr->seq_no, sizeof(hdr->seq_no));
 
@@ -62,12 +62,12 @@ static void _tac_md5_pad(const HDR *hdr,
 /* Perform encryption/decryption on buffer. This means simply XORing
    each byte from buffer with according byte from pseudo-random
    pad. */
-void _tac_crypt(u_char *buf, const HDR *th) {
+void _tac_crypt(unsigned char *buf, const HDR *th) {
     unsigned i, j, length = ntohl(th->datalength);
  
     /* null operation if no encryption requested */
     if((tac_secret != NULL) && (th->encryption & TAC_PLUS_UNENCRYPTED_FLAG) != TAC_PLUS_UNENCRYPTED_FLAG) {
-        u_char digest[MD5_LBLOCK];
+        unsigned char digest[MD5_LBLOCK];
  
         for (i=0; i<length; i++) {
             j = i % MD5_LBLOCK;
diff --git a/libtac/lib/header.c b/libtac/lib/header.c
index 2156d2a..7331947 100644
--- a/libtac/lib/header.c
+++ b/libtac/lib/header.c
@@ -66,7 +66,7 @@ int tac_readtimeout_enable = 0;
  * field depends on the TACACS+ request type and thus it
  * cannot be predefined.
  */
-HDR *_tac_req_header(u_char type, int cont_session) {
+HDR *_tac_req_header(unsigned char type, int cont_session) {
     HDR *th;
 
     th=(HDR *) xcalloc(1, TAC_PLUS_HDR_SIZE);