#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