Changeset 4745:1e974ec321bd in roaraudio for roard/req.c


Ignore:
Timestamp:
01/31/11 15:16:14 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Better auth type oder support (Closes: #6)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/req.c

    r4740 r4745  
    100100 
    101101int req_on_auth        (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 
     102 struct roar_error_frame   error_frame; 
     103 void                    * error_data; 
     104 struct roar_message       error_mes; 
    102105 struct roar_client_server * cs; 
    103106 struct roar_auth_message    authmes; 
     107 int next = -1; 
    104108 int ret; 
    105109 
     
    114118                           client, roar_autht2str(authmes.type), authmes.type); 
    115119 
    116  ret = auth_client_ckeck(cs, &authmes); 
    117  
    118  if ( ret != 1 ) 
    119   return -1; 
     120 ret = auth_client_ckeck(cs, &authmes, &next); 
     121 
     122 if ( ret != 1 ) { 
     123  if ( next != -1 ) { 
     124   memset(&authmes, 0, sizeof(authmes)); 
     125 
     126   authmes.type = next; 
     127 
     128   if ( roar_auth_to_mes(&error_mes, NULL, &authmes) == -1 ) 
     129    return -1; 
     130 
     131   if ( roar_err_int(&error_frame) == -1 ) 
     132    return -1; 
     133 
     134   error_frame.ra_errno = ROAR_ERROR_PERM; 
     135   error_frame.datalen  = error_mes.datalen; 
     136 
     137   error_data   = roar_err_buildmsg(mes, &error_frame); 
     138 
     139   memcpy(error_data, error_mes.data, error_mes.datalen); 
     140 
     141   mes->cmd     = ROAR_CMD_ERROR; 
     142   mes->pos     = g_pos; 
     143   return 0; 
     144  } 
     145 
     146  return -1; 
     147 } 
    120148 
    121149 mes->cmd     = ROAR_CMD_OK; 
Note: See TracChangeset for help on using the changeset viewer.