/[radius]/radius/radiusd/radutil.c
ViewVC logotype

Diff of /radius/radiusd/radutil.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.37 by gray, Wed Apr 30 08:44:33 2003 UTC revision 1.38 by gray, Wed Jun 11 15:03:59 2003 UTC
# Line 147  attr_to_str(struct obstack *obp, RADIUS_ Line 147  attr_to_str(struct obstack *obp, RADIUS_
147                                  len = pair->avp_strlength;                                  len = pair->avp_strlength;
148                          obstack_grow_quoted(obp, string, len);                          obstack_grow_quoted(obp, string, len);
149                  } else {                  } else {
150                          /* strvalue might include terminating zero character,                          obstack_grow_quoted(obp,
151                             so we need to recalculate it */                                              pair->avp_strvalue,
152                          int length = strlen(pair->avp_strvalue);                                              pair->avp_strlength);
                         obstack_grow_quoted(obp, pair->avp_strvalue, length);  
153                  }                  }
154                  break;                  break;
155                    
156          case TYPE_INTEGER:          case TYPE_INTEGER:
157                  snprintf(tmp, sizeof(tmp), "%lu", pair->avp_lvalue);                  snprintf(tmp, sizeof(tmp), "%lu", pair->avp_lvalue);
158                  len = strlen(tmp);                  len = strlen(tmp);
159                  obstack_grow(obp, tmp, len);                  obstack_grow(obp, tmp, len);
160                  break;                  break;
161                    
162          case TYPE_IPADDR:          case TYPE_IPADDR:
163                  ip_iptostr(pair->avp_lvalue, tmp);                  ip_iptostr(pair->avp_lvalue, tmp);
164                  len = strlen(tmp);                  len = strlen(tmp);
165                  obstack_grow(obp, tmp, len);                  obstack_grow(obp, tmp, len);
166                  break;                  break;
167                    
168          case TYPE_DATE:          case TYPE_DATE:
169                  snprintf(tmp, sizeof(tmp), "%ld", pair->avp_lvalue);                  snprintf(tmp, sizeof(tmp), "%ld", pair->avp_lvalue);
170                  len = strlen(tmp);                  len = strlen(tmp);
171                  obstack_grow(obp, tmp, len);                  obstack_grow(obp, tmp, len);
172                  break;                  break;
173                    
174          default:          default:
175                  radlog(L_CRIT,                  radlog(L_CRIT,
176                      _("INTERNAL ERROR (%s:%d): attribute %d has bad type (%d)"),                      _("INTERNAL ERROR (%s:%d): attribute %d has bad type (%d)"),
# Line 272  radius_xlate0(struct obstack *obp, char Line 275  radius_xlate0(struct obstack *obp, char
275                  default:                  default:
276                          obstack_1grow(obp, c);                          obstack_1grow(obp, c);
277                          break;                          break;
278                            
279                  case 0:                  case 0:
280                          goto end;                          goto end;
281                            
282                  case '\n':                  case '\n':
283                          obstack_1grow(obp, '\r');                          obstack_1grow(obp, '\r');
284                          obstack_1grow(obp, c);                          obstack_1grow(obp, c);
285                          break;                          break;
286                            
287                  case '%':                  case '%':
288                          if (!req) {                          if (!req) {
289                                  obstack_1grow(obp, c);                                  obstack_1grow(obp, c);
# Line 287  radius_xlate0(struct obstack *obp, char Line 293  radius_xlate0(struct obstack *obp, char
293                          case '%':                          case '%':
294                                  obstack_1grow(obp, c);                                  obstack_1grow(obp, c);
295                                  break;                                  break;
296                                    
297                          case 'D':                          case 'D':
298                                  curtime_to_str(obp, req->request, 0);                                  curtime_to_str(obp, req->request, 0);
299                                  break;                                  break;
300                                    
301                          case 'G':                          case 'G':
302                                  curtime_to_str(obp, req->request, 1);                                  curtime_to_str(obp, req->request, 1);
303                                  break;                                  break;
304                                    
305                          case 'f': /* Framed IP address */                          case 'f': /* Framed IP address */
306                                  attrno_to_str(obp, NULL, reply,                                  attrno_to_str(obp, NULL, reply,
307                                                DA_FRAMED_IP_ADDRESS, NULL);                                                DA_FRAMED_IP_ADDRESS, NULL);
308                                  break;                                  break;
309                                    
310                          case 'n': /* NAS IP address */                          case 'n': /* NAS IP address */
311                                  attrno_to_str(obp, req, req->request,                                  attrno_to_str(obp, req, req->request,
312                                                DA_NAS_IP_ADDRESS, NULL);                                                DA_NAS_IP_ADDRESS, NULL);
313                                  break;                                  break;
314                                    
315                          case 't': /* MTU */                          case 't': /* MTU */
316                                  attrno_to_str(obp, NULL, reply,                                  attrno_to_str(obp, NULL, reply,
317                                                DA_FRAMED_MTU, NULL);                                                DA_FRAMED_MTU, NULL);
318                                  break;                                  break;
319                                    
320                          case 'p': /* Port number */                          case 'p': /* Port number */
321                                  attrno_to_str(obp, req, req->request,                                  attrno_to_str(obp, req, req->request,
322                                                DA_NAS_PORT_ID, NULL);                                                DA_NAS_PORT_ID, NULL);
323                                  break;                                  break;
324                                    
325                          case 'u': /* User name */                          case 'u': /* User name */
326                                  attrno_to_str(obp, req, req->request,                                  attrno_to_str(obp, req, req->request,
327                                                DA_USER_NAME, NULL);                                                DA_USER_NAME, NULL);
328                                  break;                                  break;
329                                    
330                          case 'c': /* Callback-Number */                          case 'c': /* Callback-Number */
331                                  attrno_to_str(obp, NULL, reply,                                  attrno_to_str(obp, NULL, reply,
332                                                DA_CALLBACK_NUMBER, NULL);                                                DA_CALLBACK_NUMBER, NULL);
333                                  break;                                  break;
334                                    
335                          case 'i': /* Calling station ID */                          case 'i': /* Calling station ID */
336                                  attrno_to_str(obp, req, req->request,                                  attrno_to_str(obp, req, req->request,
337                                                DA_CALLING_STATION_ID, NULL);                                                DA_CALLING_STATION_ID, NULL);
338                                  break;                                  break;
339                                    
340                          case 'a': /* Protocol: SLIP/PPP */                          case 'a': /* Protocol: SLIP/PPP */
341                                  attrno_to_str(obp, NULL, reply,                                  attrno_to_str(obp, NULL, reply,
342                                                DA_FRAMED_PROTOCOL, NULL);                                                DA_FRAMED_PROTOCOL, NULL);
343                                  break;                                  break;
344                                    
345                          case 's': /* Speed */                          case 's': /* Speed */
346                                  attrno_to_str(obp, req, req->request,                                  attrno_to_str(obp, req, req->request,
347                                                DA_CONNECT_INFO, NULL);                                                DA_CONNECT_INFO, NULL);
348                                  break;                                  break;
349                                    
350                          case 'C':                          case 'C':
351                                  /* Check pair */                                  /* Check pair */
352                                  da = parse_dict_attr(p, &p, &defval);                                  da = parse_dict_attr(p, &p, &defval);
# Line 336  radius_xlate0(struct obstack *obp, char Line 354  radius_xlate0(struct obstack *obp, char
354                                              da, defval);                                              da, defval);
355                                  efree(defval);                                  efree(defval);
356                                  break;                                  break;
357                                    
358                          case 'R':                          case 'R':
359                                  /* Reply pair */                                  /* Reply pair */
360                                  da = parse_dict_attr(p, &p, &defval);                                  da = parse_dict_attr(p, &p, &defval);
361                                  attr_to_str(obp, NULL,                                  attr_to_str(obp, NULL,
362                                              reply, da, defval);                                              reply, da, defval);
363                                  break;                                  break;
364                                    
365                          default:                                                                  default:                                        
366                                  obstack_1grow(obp, '%');                                  obstack_1grow(obp, '%');
367                                  obstack_1grow(obp, c);                                  obstack_1grow(obp, c);
# Line 354  radius_xlate0(struct obstack *obp, char Line 374  radius_xlate0(struct obstack *obp, char
374                          case 'a':                          case 'a':
375                                  obstack_1grow(obp, '\a');                                  obstack_1grow(obp, '\a');
376                                  break;                                  break;
377                                    
378                          case 'b':                          case 'b':
379                                  obstack_1grow(obp, '\b');                                  obstack_1grow(obp, '\b');
380                                  break;                                  break;
381                                    
382                          case 'f':                          case 'f':
383                                  obstack_1grow(obp, '\f');                                  obstack_1grow(obp, '\f');
384                                  break;                                  break;
385                                    
386                          case 'e':                          case 'e':
387                                  obstack_1grow(obp, '\033');                                  obstack_1grow(obp, '\033');
388                                  break;                                  break;
389                                    
390                          case 'n':                          case 'n':
391                                  obstack_1grow(obp, '\n');                                  obstack_1grow(obp, '\n');
392                                  break;                                  break;
393                                    
394                          case 'r':                          case 'r':
395                                  obstack_1grow(obp, '\r');                                  obstack_1grow(obp, '\r');
396                                  break;                                  break;
397                                    
398                          case 't':                          case 't':
399                                  obstack_1grow(obp, '\t');                                  obstack_1grow(obp, '\t');
400                                  break;                                  break;
401                                    
402                          case 0:                          case 0:
403                                  goto end;                                  goto end;
404                                    
405                          default:                          default:
406                                  obstack_1grow(obp, '\\');                                  obstack_1grow(obp, '\\');
407                                  obstack_1grow(obp, c);                                  obstack_1grow(obp, c);

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26