comparison src/protocols/oscar/oscar.c @ 4199:97de60e7b7ba

[gaim-migrate @ 4430] kingant broke gaim such that gcc 3.x users had gaim segfault but gcc 2.95 users did not. very odd. this reverts the problematic patch committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sat, 04 Jan 2003 16:54:37 +0000
parents 9325df841a40
children c8fb43808a4b
comparison
equal deleted inserted replaced
4198:c46c977cfc9e 4199:97de60e7b7ba
1001 fu32_t offset, len; 1001 fu32_t offset, len;
1002 char *modname; 1002 char *modname;
1003 int fd; 1003 int fd;
1004 1004
1005 va_start(ap, fr); 1005 va_start(ap, fr);
1006 offset = va_arg(ap, fu32_t); 1006 offset = (fu32_t)va_arg(ap, unsigned long);
1007 len = va_arg(ap, fu32_t); 1007 len = (fu32_t)va_arg(ap, unsigned long);
1008 modname = va_arg(ap, char *); 1008 modname = va_arg(ap, char *);
1009 va_end(ap); 1009 va_end(ap);
1010 1010
1011 debug_printf("offset: %lu, len: %lu, file: %s\n", offset, len, (modname ? modname : "aim.exe")); 1011 debug_printf("offset: %lu, len: %lu, file: %s\n", offset, len, (modname ? modname : "aim.exe"));
1012 if (len == 0) { 1012 if (len == 0) {
2192 2192
2193 return 1; 2193 return 1;
2194 } 2194 }
2195 2195
2196 static int gaim_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...) { 2196 static int gaim_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...) {
2197 fu16_t channel; 2197 int channel, ret = 0;
2198 int ret = 0;
2199 aim_userinfo_t *userinfo; 2198 aim_userinfo_t *userinfo;
2200 va_list ap; 2199 va_list ap;
2201 2200
2202 va_start(ap, fr); 2201 va_start(ap, fr);
2203 channel = va_arg(ap, fu16_t); 2202 channel = va_arg(ap, int);
2204 userinfo = va_arg(ap, aim_userinfo_t *); 2203 userinfo = va_arg(ap, aim_userinfo_t *);
2205 2204
2206 switch (channel) { 2205 switch (channel) {
2207 case 1: { /* standard message */ 2206 case 1: { /* standard message */
2208 struct aim_incomingim_ch1_args *args; 2207 struct aim_incomingim_ch1_args *args;
2237 fu16_t chan, nummissed, reason; 2236 fu16_t chan, nummissed, reason;
2238 aim_userinfo_t *userinfo; 2237 aim_userinfo_t *userinfo;
2239 char buf[1024]; 2238 char buf[1024];
2240 2239
2241 va_start(ap, fr); 2240 va_start(ap, fr);
2242 chan = va_arg(ap, fu16_t); 2241 chan = (fu16_t)va_arg(ap, unsigned int);
2243 userinfo = va_arg(ap, aim_userinfo_t *); 2242 userinfo = va_arg(ap, aim_userinfo_t *);
2244 nummissed = va_arg(ap, fu16_t); 2243 nummissed = (fu16_t)va_arg(ap, unsigned int);
2245 reason = va_arg(ap, fu16_t); 2244 reason = (fu16_t)va_arg(ap, unsigned int);
2246 va_end(ap); 2245 va_end(ap);
2247 2246
2248 switch(reason) { 2247 switch(reason) {
2249 case 0: 2248 case 0:
2250 /* Invalid (0) */ 2249 /* Invalid (0) */
2406 va_list ap; 2405 va_list ap;
2407 fu16_t chan, reason; 2406 fu16_t chan, reason;
2408 char *who; 2407 char *who;
2409 2408
2410 va_start(ap, fr); 2409 va_start(ap, fr);
2411 chan = va_arg(ap, fu16_t); 2410 chan = (fu16_t) va_arg(ap, unsigned int);
2412 who = va_arg(ap, char *); 2411 who = va_arg(ap, char *);
2413 reason = va_arg(ap, fu16_t); 2412 reason = (fu16_t) va_arg(ap, unsigned int);
2414 2413
2415 if (chan == 0x0002) { /* File transfer declined */ 2414 if (chan == 0x0002) { /* File transfer declined */
2416 char *cookie = va_arg(ap, char *); 2415 char *cookie = va_arg(ap, char *);
2417 return gaim_parse_clientauto_ch2(sess, who, reason, cookie); 2416 return gaim_parse_clientauto_ch2(sess, who, reason, cookie);
2418 } else if (chan == 0x0004) { /* ICQ message */ 2417 } else if (chan == 0x0004) { /* ICQ message */
2419 fu32_t state = 0; 2418 int state = 0;
2420 char *msg = NULL; 2419 char *msg = NULL;
2421 if (reason == 0x0003) { 2420 if (reason == 0x0003) {
2422 state = va_arg(ap, fu32_t); 2421 state = (int) va_arg(ap, fu32_t);
2423 msg = va_arg(ap, char *); 2422 msg = va_arg(ap, char *);
2424 } 2423 }
2425 return gaim_parse_clientauto_ch4(sess, who, reason, state, msg); 2424 return gaim_parse_clientauto_ch4(sess, who, reason, state, msg);
2426 } 2425 }
2427 2426
2434 va_list ap; 2433 va_list ap;
2435 fu16_t reason; 2434 fu16_t reason;
2436 char *m; 2435 char *m;
2437 2436
2438 va_start(ap, fr); 2437 va_start(ap, fr);
2439 reason = va_arg(ap, fu16_t); 2438 reason = (fu16_t) va_arg(ap, unsigned int);
2440 va_end(ap); 2439 va_end(ap);
2441 2440
2442 debug_printf("snac threw error (reason 0x%04hx: %s)\n", reason, 2441 debug_printf("snac threw error (reason 0x%04hx: %s)\n", reason,
2443 (reason < msgerrreasonlen) ? msgerrreason[reason] : "unknown"); 2442 (reason < msgerrreasonlen) ? msgerrreason[reason] : "unknown");
2444 2443
2457 char buf[1024]; 2456 char buf[1024];
2458 struct gaim_connection *gc = sess->aux_data; 2457 struct gaim_connection *gc = sess->aux_data;
2459 struct oscar_file_transfer *oft; 2458 struct oscar_file_transfer *oft;
2460 2459
2461 va_start(ap, fr); 2460 va_start(ap, fr);
2462 reason = va_arg(ap, fu16_t); 2461 reason = (fu16_t) va_arg(ap, unsigned int);
2463 data = va_arg(ap, char *); 2462 data = va_arg(ap, char *);
2464 va_end(ap); 2463 va_end(ap);
2465 2464
2466 /* If this was a file transfer request, data is a cookie. */ 2465 /* If this was a file transfer request, data is a cookie. */
2467 if ((oft = find_oft_by_cookie(gc, data))) { 2466 if ((oft = find_oft_by_cookie(gc, data))) {
2484 va_list ap; 2483 va_list ap;
2485 fu16_t type1, type2; 2484 fu16_t type1, type2;
2486 char *sn; 2485 char *sn;
2487 2486
2488 va_start(ap, fr); 2487 va_start(ap, fr);
2489 type1 = va_arg(ap, fu16_t); 2488 type1 = (fu16_t) va_arg(ap, unsigned int);
2490 sn = va_arg(ap, char *); 2489 sn = va_arg(ap, char *);
2491 type2 = va_arg(ap, fu16_t); 2490 type2 = (fu16_t) va_arg(ap, unsigned int);
2492 va_end(ap); 2491 va_end(ap);
2493 2492
2494 debug_printf("Received an mtn from %s. Type1 is 0x%04hx and type2 is 0x%04hx.\n", sn, type1, type2); 2493 debug_printf("Received an mtn from %s. Type1 is 0x%04hx and type2 is 0x%04hx.\n", sn, type1, type2);
2495 2494
2496 switch (type2) { 2495 switch (type2) {
2519 char *destn; 2518 char *destn;
2520 fu16_t reason; 2519 fu16_t reason;
2521 char buf[1024]; 2520 char buf[1024];
2522 2521
2523 va_start(ap, fr); 2522 va_start(ap, fr);
2524 reason = va_arg(ap, fu16_t); 2523 reason = (fu16_t) va_arg(ap, unsigned int);
2525 destn = va_arg(ap, char *); 2524 destn = va_arg(ap, char *);
2526 va_end(ap); 2525 va_end(ap);
2527 2526
2528 snprintf(buf, sizeof(buf), _("User information for %s unavailable:"), destn); 2527 snprintf(buf, sizeof(buf), _("User information for %s unavailable:"), destn);
2529 do_error_dialog(buf, (reason < msgerrreasonlen) ? gettext(msgerrreason[reason]) : _("No reason was given."), GAIM_ERROR); 2528 do_error_dialog(buf, (reason < msgerrreasonlen) ? gettext(msgerrreason[reason]) : _("No reason was given."), GAIM_ERROR);
2632 va_list ap; 2631 va_list ap;
2633 gchar *membersince = NULL, *onlinesince = NULL, *idle = NULL; 2632 gchar *membersince = NULL, *onlinesince = NULL, *idle = NULL;
2634 2633
2635 va_start(ap, fr); 2634 va_start(ap, fr);
2636 info = va_arg(ap, aim_userinfo_t *); 2635 info = va_arg(ap, aim_userinfo_t *);
2637 infotype = va_arg(ap, fu16_t); 2636 infotype = (fu16_t) va_arg(ap, unsigned int);
2638 text_enc = va_arg(ap, char *); 2637 text_enc = va_arg(ap, char *);
2639 text = va_arg(ap, char *); 2638 text = va_arg(ap, char *);
2640 text_len = va_arg(ap, int); 2639 text_len = va_arg(ap, int);
2641 va_end(ap); 2640 va_end(ap);
2642 2641
2755 fu16_t id; 2754 fu16_t id;
2756 va_list ap; 2755 va_list ap;
2757 char buildbuf[150]; 2756 char buildbuf[150];
2758 2757
2759 va_start(ap, fr); 2758 va_start(ap, fr);
2760 id = va_arg(ap, fu16_t); 2759 id = (fu16_t) va_arg(ap, unsigned int);
2761 msg = va_arg(ap, char *); 2760 msg = va_arg(ap, char *);
2762 va_end(ap); 2761 va_end(ap);
2763 2762
2764 aim_getbuildstring(buildbuf, sizeof(buildbuf)); 2763 aim_getbuildstring(buildbuf, sizeof(buildbuf));
2765 2764
2775 fu16_t type; 2774 fu16_t type;
2776 struct gaim_connection *gc = sess->aux_data; 2775 struct gaim_connection *gc = sess->aux_data;
2777 struct oscar_data *odata = (struct oscar_data *)gc->proto_data; 2776 struct oscar_data *odata = (struct oscar_data *)gc->proto_data;
2778 2777
2779 va_start(ap, fr); 2778 va_start(ap, fr);
2780 type = va_arg(ap, fu16_t); 2779 type = (fu16_t) va_arg(ap, unsigned int);
2781 2780
2782 switch(type) { 2781 switch(type) {
2783 case 0x0002: { 2782 case 0x0002: {
2784 fu8_t maxrooms; 2783 fu8_t maxrooms;
2785 struct aim_chat_exchangeinfo *exchanges; 2784 struct aim_chat_exchangeinfo *exchanges;
2786 int exchangecount, i; 2785 int exchangecount, i;
2787 2786
2788 maxrooms = va_arg(ap, fu8_t); 2787 maxrooms = (fu8_t) va_arg(ap, unsigned int);
2789 exchangecount = va_arg(ap, int); 2788 exchangecount = va_arg(ap, int);
2790 exchanges = va_arg(ap, struct aim_chat_exchangeinfo *); 2789 exchanges = va_arg(ap, struct aim_chat_exchangeinfo *);
2791 2790
2792 debug_printf("chat info: Chat Rights:\n"); 2791 debug_printf("chat info: Chat Rights:\n");
2793 debug_printf("chat info: \tMax Concurrent Rooms: %hhd\n", maxrooms); 2792 debug_printf("chat info: \tMax Concurrent Rooms: %hhd\n", maxrooms);
2809 fu16_t instance, flags, maxmsglen, maxoccupancy, unknown, exchange; 2808 fu16_t instance, flags, maxmsglen, maxoccupancy, unknown, exchange;
2810 fu8_t createperms; 2809 fu8_t createperms;
2811 fu32_t createtime; 2810 fu32_t createtime;
2812 2811
2813 fqcn = va_arg(ap, char *); 2812 fqcn = va_arg(ap, char *);
2814 instance = va_arg(ap, fu16_t); 2813 instance = (fu16_t)va_arg(ap, unsigned int);
2815 exchange = va_arg(ap, fu16_t); 2814 exchange = (fu16_t)va_arg(ap, unsigned int);
2816 flags = va_arg(ap, fu16_t); 2815 flags = (fu16_t)va_arg(ap, unsigned int);
2817 createtime = va_arg(ap, fu32_t); 2816 createtime = va_arg(ap, fu32_t);
2818 maxmsglen = va_arg(ap, fu16_t); 2817 maxmsglen = (fu16_t)va_arg(ap, unsigned int);
2819 maxoccupancy = va_arg(ap, fu16_t); 2818 maxoccupancy = (fu16_t)va_arg(ap, unsigned int);
2820 createperms = va_arg(ap, fu8_t); 2819 createperms = (fu8_t)va_arg(ap, int);
2821 unknown = va_arg(ap, fu16_t); 2820 unknown = (fu16_t)va_arg(ap, unsigned int);
2822 name = va_arg(ap, char *); 2821 name = va_arg(ap, char *);
2823 ck = va_arg(ap, char *); 2822 ck = va_arg(ap, char *);
2823 /* va_end(ap); */
2824 2824
2825 debug_printf("created room: %s %hu %hu %hu %lu %hu %hu %hhu %hu %s %s\n", 2825 debug_printf("created room: %s %hu %hu %hu %lu %hu %hu %hhu %hu %s %s\n",
2826 fqcn, 2826 fqcn,
2827 exchange, instance, flags, 2827 exchange, instance, flags,
2828 createtime, 2828 createtime,
2903 roominfo = va_arg(ap, struct aim_chat_roominfo *); 2903 roominfo = va_arg(ap, struct aim_chat_roominfo *);
2904 roomname = va_arg(ap, char *); 2904 roomname = va_arg(ap, char *);
2905 usercount= va_arg(ap, int); 2905 usercount= va_arg(ap, int);
2906 userinfo = va_arg(ap, aim_userinfo_t *); 2906 userinfo = va_arg(ap, aim_userinfo_t *);
2907 roomdesc = va_arg(ap, char *); 2907 roomdesc = va_arg(ap, char *);
2908 unknown_c9 = va_arg(ap, fu16_t); 2908 unknown_c9 = (fu16_t)va_arg(ap, int);
2909 creationtime = va_arg(ap, fu32_t); 2909 creationtime = (fu32_t)va_arg(ap, unsigned long);
2910 maxmsglen = va_arg(ap, fu16_t); 2910 maxmsglen = (fu16_t)va_arg(ap, int);
2911 unknown_d2 = va_arg(ap, fu16_t); 2911 unknown_d2 = (fu16_t)va_arg(ap, int);
2912 unknown_d5 = va_arg(ap, fu16_t); 2912 unknown_d5 = (fu16_t)va_arg(ap, int);
2913 maxvisiblemsglen = va_arg(ap, fu16_t); 2913 maxvisiblemsglen = (fu16_t)va_arg(ap, int);
2914 va_end(ap); 2914 va_end(ap);
2915 2915
2916 debug_printf("inside chat_info_update (maxmsglen = %hu, maxvislen = %hu)\n", 2916 debug_printf("inside chat_info_update (maxmsglen = %hu, maxvislen = %hu)\n",
2917 maxmsglen, maxvisiblemsglen); 2917 maxmsglen, maxvisiblemsglen);
2918 2918
2973 va_list ap; 2973 va_list ap;
2974 fu16_t type; 2974 fu16_t type;
2975 char *sn; 2975 char *sn;
2976 2976
2977 va_start(ap, fr); 2977 va_start(ap, fr);
2978 type = va_arg(ap, fu16_t); 2978 type = (fu16_t) va_arg(ap, unsigned int);
2979 sn = va_arg(ap, char *); 2979 sn = va_arg(ap, char *);
2980 va_end(ap); 2980 va_end(ap);
2981 2981
2982 debug_printf("Sent message to %s.\n", sn); 2982 debug_printf("Sent message to %s.\n", sn);
2983 2983
2995 va_list ap; 2995 va_list ap;
2996 fu16_t code, rateclass; 2996 fu16_t code, rateclass;
2997 fu32_t windowsize, clear, alert, limit, disconnect, currentavg, maxavg; 2997 fu32_t windowsize, clear, alert, limit, disconnect, currentavg, maxavg;
2998 2998
2999 va_start(ap, fr); 2999 va_start(ap, fr);
3000 code = va_arg(ap, fu16_t); 3000 code = (fu16_t)va_arg(ap, unsigned int);
3001 rateclass= va_arg(ap, fu16_t); 3001 rateclass= (fu16_t)va_arg(ap, unsigned int);
3002 windowsize = va_arg(ap, fu32_t); 3002 windowsize = (fu32_t)va_arg(ap, unsigned long);
3003 clear = va_arg(ap, fu32_t); 3003 clear = (fu32_t)va_arg(ap, unsigned long);
3004 alert = va_arg(ap, fu32_t); 3004 alert = (fu32_t)va_arg(ap, unsigned long);
3005 limit = va_arg(ap, fu32_t); 3005 limit = (fu32_t)va_arg(ap, unsigned long);
3006 disconnect = va_arg(ap, fu32_t); 3006 disconnect = (fu32_t)va_arg(ap, unsigned long);
3007 currentavg = va_arg(ap, fu32_t); 3007 currentavg = (fu32_t)va_arg(ap, unsigned long);
3008 maxavg = va_arg(ap, fu32_t); 3008 maxavg = (fu32_t)va_arg(ap, unsigned long);
3009 va_end(ap); 3009 va_end(ap);
3010 3010
3011 debug_printf("rate %s (param ID 0x%04hx): curavg = %lu, maxavg = %lu, alert at %lu, " 3011 debug_printf("rate %s (param ID 0x%04hx): curavg = %lu, maxavg = %lu, alert at %lu, "
3012 "clear warning at %lu, limit at %lu, disconnect at %lu (window size = %lu)\n", 3012 "clear warning at %lu, limit at %lu, disconnect at %lu (window size = %lu)\n",
3013 (code < 5) ? codes[code] : codes[0], 3013 (code < 5) ? codes[code] : codes[0],
3040 fu16_t newevil; 3040 fu16_t newevil;
3041 aim_userinfo_t *userinfo; 3041 aim_userinfo_t *userinfo;
3042 struct gaim_connection *gc = sess->aux_data; 3042 struct gaim_connection *gc = sess->aux_data;
3043 3043
3044 va_start(ap, fr); 3044 va_start(ap, fr);
3045 newevil = va_arg(ap, fu16_t); 3045 newevil = (fu16_t) va_arg(ap, unsigned int);
3046 userinfo = va_arg(ap, aim_userinfo_t *); 3046 userinfo = va_arg(ap, aim_userinfo_t *);
3047 va_end(ap); 3047 va_end(ap);
3048 3048
3049 serv_got_eviled(gc, (userinfo && userinfo->sn[0]) ? userinfo->sn : NULL, newevil / 10); 3049 serv_got_eviled(gc, (userinfo && userinfo->sn[0]) ? userinfo->sn : NULL, newevil / 10);
3050 3050
3164 char *unicode; 3164 char *unicode;
3165 int unicode_len; 3165 int unicode_len;
3166 fu32_t flags; 3166 fu32_t flags;
3167 3167
3168 va_start(ap, fr); 3168 va_start(ap, fr);
3169 maxsiglen = va_arg(ap, fu16_t); 3169 maxsiglen = (fu16_t) va_arg(ap, int);
3170 va_end(ap); 3170 va_end(ap);
3171 3171
3172 debug_printf("locate rights: max sig len = %d\n", maxsiglen); 3172 debug_printf("locate rights: max sig len = %d\n", maxsiglen);
3173 3173
3174 odata->rights.maxsiglen = odata->rights.maxawaymsglen = (guint)maxsiglen; 3174 odata->rights.maxsiglen = odata->rights.maxawaymsglen = (guint)maxsiglen;
3198 fu16_t maxbuddies, maxwatchers; 3198 fu16_t maxbuddies, maxwatchers;
3199 struct gaim_connection *gc = sess->aux_data; 3199 struct gaim_connection *gc = sess->aux_data;
3200 struct oscar_data *odata = (struct oscar_data *)gc->proto_data; 3200 struct oscar_data *odata = (struct oscar_data *)gc->proto_data;
3201 3201
3202 va_start(ap, fr); 3202 va_start(ap, fr);
3203 maxbuddies = va_arg(ap, fu16_t); 3203 maxbuddies = (fu16_t) va_arg(ap, unsigned int);
3204 maxwatchers = va_arg(ap, fu16_t); 3204 maxwatchers = (fu16_t) va_arg(ap, unsigned int);
3205 va_end(ap); 3205 va_end(ap);
3206 3206
3207 debug_printf("buddy list rights: Max buddies = %hu / Max watchers = %hu\n", maxbuddies, maxwatchers); 3207 debug_printf("buddy list rights: Max buddies = %hu / Max watchers = %hu\n", maxbuddies, maxwatchers);
3208 3208
3209 odata->rights.maxbuddies = (guint)maxbuddies; 3209 odata->rights.maxbuddies = (guint)maxbuddies;
3217 va_list ap; 3217 va_list ap;
3218 struct gaim_connection *gc = sess->aux_data; 3218 struct gaim_connection *gc = sess->aux_data;
3219 struct oscar_data *odata = (struct oscar_data *)gc->proto_data; 3219 struct oscar_data *odata = (struct oscar_data *)gc->proto_data;
3220 3220
3221 va_start(ap, fr); 3221 va_start(ap, fr);
3222 maxpermits = va_arg(ap, fu16_t); 3222 maxpermits = (fu16_t) va_arg(ap, unsigned int);
3223 maxdenies = va_arg(ap, fu16_t); 3223 maxdenies = (fu16_t) va_arg(ap, unsigned int);
3224 va_end(ap); 3224 va_end(ap);
3225 3225
3226 debug_printf("BOS rights: Max permit = %hu / Max deny = %hu\n", maxpermits, maxdenies); 3226 debug_printf("BOS rights: Max permit = %hu / Max deny = %hu\n", maxpermits, maxdenies);
3227 3227
3228 odata->rights.maxpermits = (guint)maxpermits; 3228 odata->rights.maxpermits = (guint)maxpermits;
3411 va_list ap; 3411 va_list ap;
3412 3412
3413 va_start(ap, fr); 3413 va_start(ap, fr);
3414 msg = va_arg(ap, char *); 3414 msg = va_arg(ap, char *);
3415 url = va_arg(ap, char *); 3415 url = va_arg(ap, char *);
3416 wid = va_arg(ap, fu16_t); 3416 wid = (fu16_t) va_arg(ap, int);
3417 hei = va_arg(ap, fu16_t); 3417 hei = (fu16_t) va_arg(ap, int);
3418 delay = va_arg(ap, fu16_t); 3418 delay = (fu16_t) va_arg(ap, int);
3419 va_end(ap); 3419 va_end(ap);
3420 3420
3421 serv_got_popup(msg, url, wid, hei); 3421 serv_got_popup(msg, url, wid, hei);
3422 3422
3423 return 1; 3423 return 1;
3467 va_list ap; 3467 va_list ap;
3468 char msg[256]; 3468 char msg[256];
3469 struct gaim_connection *gc = sess->aux_data; 3469 struct gaim_connection *gc = sess->aux_data;
3470 3470
3471 va_start(ap, fr); 3471 va_start(ap, fr);
3472 status = va_arg(ap, fu16_t); /* status code of confirmation request */ 3472 status = (fu16_t) va_arg(ap, unsigned int); /* status code of confirmation request */
3473 va_end(ap); 3473 va_end(ap);
3474 3474
3475 debug_printf("account confirmation returned status 0x%04x (%s)\n", status, 3475 debug_printf("account confirmation returned status 0x%04x (%s)\n", status,
3476 status ? "unknown" : "email sent"); 3476 status ? "unknown" : "email sent");
3477 if (!status) { 3477 if (!status) {
3490 char *url, *sn, *email; 3490 char *url, *sn, *email;
3491 int change; 3491 int change;
3492 3492
3493 va_start(ap, fr); 3493 va_start(ap, fr);
3494 change = va_arg(ap, int); 3494 change = va_arg(ap, int);
3495 perms = va_arg(ap, fu16_t); 3495 perms = (fu16_t) va_arg(ap, unsigned int);
3496 err = va_arg(ap, fu16_t); 3496 err = (fu16_t) va_arg(ap, unsigned int);
3497 url = va_arg(ap, char *); 3497 url = va_arg(ap, char *);
3498 sn = va_arg(ap, char *); 3498 sn = va_arg(ap, char *);
3499 email = va_arg(ap, char *); 3499 email = va_arg(ap, char *);
3500 va_end(ap); 3500 va_end(ap);
3501 3501