#include "os.h"
#include "s_defines.h"
#ifdef RUSNET_IRCD
int rusnet_getclientport(int fd)
{
struct sockaddr_in myaddr;
u_int32_t myaddr_len = sizeof(struct sockaddr);
if (getsockname(fd, (struct sockaddr *) &myaddr, &myaddr_len) == 0)
return ntohs(myaddr.sin_port);
else
return 0;
}
void rusnet_changecodepage(struct Client *cptr, char *pageid, char *id)
{
FILE *fp;
struct Codepage *work = rusnet_getptrbyname(pageid);
if (work != NULL)
{
cptr->transptr = work;
sendto_one(cptr, rpl_str(RPL_CODEPAGE, id), pageid);
}
else
sendto_one(cptr, err_str(ERR_NOCODEPAGE, id), pageid);
}
aChannel *rusnet_isagoodnickname(struct Client *cptr, char *nickname)
{
Reg Link *lp;
Reg aChannel *chptr;
unsigned char flag_8bit;
int i;
lp = cptr->user->channel;
/* Now let's figure out if the nickname has 8bit up chars */
flag_8bit = 0;
for (i=0; (i<NICKLEN) && (nickname[i]!=0); i++)
if ((unsigned char)(nickname[i])&0x80)
{
flag_8bit = 1;
break;
}
if (flag_8bit == 0)
return NULL;
while ( lp != NULL )
{
chptr = lp->value.chptr;
if ((chptr->mode.mode & MODE_7BIT) != 0)
{
return chptr;
}
lp = lp->next;
}
return NULL;
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1