这篇教程C++ BadPtr函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BadPtr函数的典型用法代码示例。如果您正苦于以下问题:C++ BadPtr函数的具体用法?C++ BadPtr怎么用?C++ BadPtr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BadPtr函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: m_notice/** * Handle NOTICE commands * * @param source is the nick of the person whom sent the notice * @param receiver is the nick whom it was sent to * @param msg is the message that was sent * * @return always returns MOD_CONT */int m_notice(char *source, char *receiver, char *msg){ char *temp = NULL; char *version; char *clean; if (BadPtr(source) || BadPtr(receiver) || BadPtr(msg)) { return MOD_CONT; } if (!stricmp(receiver, s_StatServ) || (s_StatServ_alias && !stricmp(receiver, s_StatServ_alias))) { clean = normalizeBuffer(msg); doCleanBuffer((char *) clean); temp = myStrGetToken(clean, ' ', 0); if (!temp) { free(clean); return MOD_CONT; } if (!stricmp(temp, "VERSION")) { version = myStrGetTokenRemainder(clean, ' ', 1); handle_ctcp_version(source, version); free(version); } free(clean); free(temp); } return MOD_CONT;}
开发者ID:danopia,项目名称:denora,代码行数:39,
示例2: m_svslogin/* * SVSLOGIN message * * parv[0]: source * parv[1]: propagation mask * parv[2]: target PUID * parv[3]: ESVID */static int m_svslogin(aClient *cptr, aClient *sptr, int parc, char *parv[]){ if (!SASL_SERVER || MyClient(sptr) || (parc < 3) || !parv[3]) return 0; if (!stricmp(parv[1], me.name)) { aClient *target_p; /* is the PUID valid? */ if ((target_p = decode_puid(parv[2])) == NULL) return 0; if (target_p->user == NULL) make_user(target_p); strlcpy(target_p->user->svid, parv[3], sizeof(target_p->user->svid)); sendto_one(target_p, err_str(RPL_LOGGEDIN), me.name, BadPtr(target_p->name) ? "*" : target_p->name, BadPtr(target_p->name) ? "*" : target_p->name, BadPtr(target_p->user->username) ? "*" : target_p->user->username, BadPtr(target_p->user->realhost) ? "*" : target_p->user->realhost, target_p->user->svid, target_p->user->svid); return 0; } /* not for us; propagate. */ sendto_serv_butone_token(cptr, parv[0], MSG_SVSLOGIN, TOK_SVSLOGIN, "%s %s %s", parv[1], parv[2], parv[3]); return 0;}
开发者ID:Adam-,项目名称:unrealircd,代码行数:42,
示例3: ms_links/* * ms_links - server message handler * * parv[0] = sender prefix * parv[1] = servername mask * * or * * parv[0] = sender prefix * parv[1] = server to query * parv[2] = servername mask */intms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { char *mask; struct Client *acptr; if (parc > 2) { if (hunt_server_cmd(sptr, CMD_LINKS, cptr, 1, "%C :%s", 1, parc, parv) != HUNTED_ISME) return 0; mask = parv[2]; } else mask = parc < 2 ? 0 : parv[1]; for (acptr = GlobalClientList, collapse(mask); acptr; acptr = cli_next(acptr)) { if (!IsServer(acptr) && !IsMe(acptr)) continue; if (!BadPtr(mask) && match(mask, cli_name(acptr))) continue; send_reply(sptr, RPL_LINKS, cli_name(acptr), cli_name(cli_serv(acptr)->up), cli_hopcount(acptr), cli_serv(acptr)->prot, ((cli_info(acptr))[0] ? cli_info(acptr) : "(Unknown Location)")); } send_reply(sptr, RPL_ENDOFLINKS, BadPtr(mask) ? "*" : mask); return 0; }
开发者ID:Niichan,项目名称:snircd,代码行数:42,
示例4: parse_d_filevoidparse_d_file(FBFILE * file){ struct ConfItem *aconf; char *reason_field = (char *) NULL; char *host_field = (char *) NULL; char line[BUFSIZE]; char *p; while (fbgets(line, sizeof(line), file)) { if((p = strchr(line, '/n'))) *p = '/0'; if((*line == '/0') || (line[0] == '#')) continue; host_field = getfield(line); if(BadPtr(host_field)) continue; reason_field = getfield(NULL); if(BadPtr(reason_field)) continue; aconf = make_conf(); aconf->status = CONF_DLINE; conf_add_fields(aconf, host_field, reason_field, "", 0, NULL); conf_add_d_conf(aconf); }}
开发者ID:Cloudxtreme,项目名称:ircd-ratbox,代码行数:31,
示例5: parse_resv_filevoidparse_resv_file(FBFILE * file){ char *reason_field; char *host_field; char line[BUFSIZE]; char *p; while (fbgets(line, sizeof(line), file)) { if((p = strchr(line, '/n'))) *p = '/0'; if((*line == '/0') || (line[0] == '#')) continue; host_field = getfield(line); if(BadPtr(host_field)) continue; reason_field = getfield(NULL); if(BadPtr(reason_field)) continue; if(IsChannelName(host_field)) create_resv(host_field, reason_field, RESV_CHANNEL); else if(clean_resv_nick(host_field)) create_resv(host_field, reason_field, RESV_NICK); }}
开发者ID:Cloudxtreme,项目名称:ircd-ratbox,代码行数:30,
示例6: get_listener_nameinline char *get_listener_name(aListener *lptr){ static char nbuf[HOSTLEN * 2 + USERLEN + 5]; ircsprintf(nbuf, "%s[@%s.%d][%s]", me.name, BadPtr(lptr->vhost_string) ? "0.0.0.0" : lptr->vhost_string, lptr->port, BadPtr(lptr->allow_string) ? "*" : lptr->allow_string); return nbuf;}
开发者ID:TrapSquad,项目名称:realistichat,代码行数:11,
示例7: CMD_FUNCDLLFUNC CMD_FUNC(m_starttls){ if (!MyConnect(sptr) || !IsUnknown(sptr)) return 0;#ifndef USE_SSL /* sendnotice(sptr, "This server does not support SSL"); */ /* or numeric 691? */ /* actually... it's probably best to just act like we don't know this command...? */ sendto_one(sptr, err_str(ERR_NOTREGISTERED), me.name, "STARTTLS"); return 0;#else if (iConf.ssl_options & SSLFLAG_NOSTARTTLS) { sendto_one(sptr, err_str(ERR_NOTREGISTERED), me.name, "STARTTLS"); return 0; } if (IsSecure(sptr)) { sendto_one(sptr, err_str(ERR_STARTTLS), me.name, !BadPtr(sptr->name) ? sptr->name : "*", "STARTTLS failed. Already using TLS."); return 0; } dbuf_delete(&sptr->recvQ, 1000000); /* Clear up any remaining plaintext commands */ sendto_one(sptr, rpl_str(RPL_STARTTLS), me.name, !BadPtr(sptr->name) ? sptr->name : "*"); send_queued(sptr); SetSSLStartTLSHandshake(sptr); Debug((DEBUG_DEBUG, "Starting SSL handshake (due to STARTTLS) for %s", sptr->sockhost)); if ((sptr->ssl = SSL_new(ctx_server)) == NULL) goto fail; sptr->flags |= FLAGS_SSL; SSL_set_fd(sptr->ssl, sptr->fd); SSL_set_nonblocking(sptr->ssl); if (!ircd_SSL_accept(sptr, sptr->fd)) { Debug((DEBUG_DEBUG, "Failed SSL accept handshake in instance 1: %s", sptr->sockhost)); SSL_set_shutdown(sptr->ssl, SSL_RECEIVED_SHUTDOWN); SSL_smart_shutdown(sptr->ssl); SSL_free(sptr->ssl); goto fail; } /* HANDSHAKE IN PROGRESS */ return 0;fail: /* Failure */ sendto_one(sptr, err_str(ERR_STARTTLS), me.name, !BadPtr(sptr->name) ? sptr->name : "*", "STARTTLS failed"); sptr->ssl = NULL; sptr->flags &= ~FLAGS_SSL; SetUnknown(sptr); return 0;#endif}
开发者ID:JourneymanGeek,项目名称:rabbitircd,代码行数:51,
示例8: do_jumpserver_exit_clientstatic int do_jumpserver_exit_client(aClient *sptr){#ifdef USE_SSL if (IsSecure(sptr) && jss->ssl_server) sendto_one(sptr, rpl_str(RPL_REDIR), me.name, BadPtr(sptr->name) ? "*" : sptr->name, jss->ssl_server, jss->ssl_port); else#endif sendto_one(sptr, rpl_str(RPL_REDIR), me.name, BadPtr(sptr->name) ? "*" : sptr->name, jss->server, jss->port); return exit_client(sptr, sptr, sptr, jss->reason);}
开发者ID:RanadeepPolavarapu,项目名称:IRCd,代码行数:14,
示例9: exit_banned_client/* * exit_banned_client() * * Sends an appropriate ban message and disconnects a client. */intexit_banned_client(aClient *cptr, int loc, char type, char *banmsg, int fast){ char rbuf[512]; char *target = "*"; char *reason = "<no reason specified>"; if (cptr->name[0]) target = cptr->name; if (!BadPtr(banmsg)) reason = banmsg; ircsnprintf(rbuf, sizeof(rbuf), "%c-banned: %s", type, reason); if (!fast) { sendto_one(&me, cptr, "NOTICE %s :*** You are banned from %s", target, loc ? me.name : Network_Name); sendto_one(&me, cptr, "NOTICE %s :*** Reason: %s", target, reason); sendto_one(&me, cptr, "NOTICE %s :*** Connection info: %s [%s]", target, get_client_name(cptr, FALSE), cipntoa(cptr)); sendto_one(&me, cptr, "NOTICE %s :*** Ban contact: %s", target, loc ? Local_Kline_Address : Network_Kline_Address); sendto_one(&me, cptr, "NOTICE %s :*** When contacting %s, please include " "all of the information shown above", target, Network_Name); sendto_one(&me, cptr, err_str(ERR_YOUREBANNEDCREEP), me.name, target, rbuf); throttle_force(cipntoa(cptr)); } return exit_client(cptr, cptr, &me, rbuf);}
开发者ID:TrapSquad,项目名称:realistichat,代码行数:39,
示例10: strlen/*** Get Channel block for i (and allocate a new channel** block, if it didn't exists before).*/aChannel *get_channel(aClient *cptr, char *chname, int flag){ aChannel *chptr; int len; if (BadPtr(chname)) return NULL; len = strlen(chname); if (MyClient(cptr) && len > CHANNELLEN) { len = CHANNELLEN; *(chname + CHANNELLEN) = '/0'; } if ((chptr = find_channel(chname, (aChannel *)NULL))) return (chptr); if (flag == CREATE) { chptr = (aChannel *)MyMalloc(sizeof(aChannel) + len); bzero((char *)chptr, sizeof(aChannel)); strncpyzt(chptr->chname, chname, len + 1); if (channel) channel->prevch = chptr; chptr->topic = NULL; chptr->topic_nick = NULL; chptr->prevch = NULL; chptr->nextch = channel; chptr->creationtime = MyClient(cptr) ? TStime() : (TS)0; channel = chptr; (void)add_to_channel_hash_table(chname, chptr); IRCstats.channels++; RunHook2(HOOKTYPE_CHANNEL_CREATE, cptr, chptr); } return chptr;}
开发者ID:HengeSense,项目名称:Technokats-Website,代码行数:39,
示例11: mo_list/*** mo_list** parv[0] = sender prefix** parv[1] = channel*/static void mo_list(struct Client *client_p, struct Client *source_p, int parc, char *parv[]){ /* If its a LazyLinks connection, let uplink handle the list * even for opers! */ if( uplink && IsCapable( uplink, CAP_LL) ) { if(parc < 2) sendto_one( uplink, ":%s LIST", source_p->name ); else sendto_one( uplink, ":%s LIST %s", source_p->name, parv[1] ); return; } /* If no arg, do all channels *whee*, else just one channel */ if (parc < 2 || BadPtr(parv[1])) { list_all_channels(source_p); } else { list_named_channel(source_p,parv[1]); }}
开发者ID:Cloudxtreme,项目名称:ircd-3,代码行数:34,
示例12: if/*** collapse a pattern string into minimal components.** This particular version is "in place", so that it changes the pattern** which is to be reduced to a "minimal" size.*/char *collapse(char *pattern){ char *s = pattern, *s1, *t; if (BadPtr(pattern)) return pattern; /* * Collapse all /** into /*, /*[?]+/** into /*[?]+ */ for (; *s; s++) if (*s == '//') if (!*(s + 1)) break; else s++; else if (*s == '*') { if (*(t = s1 = s + 1) == '*') while (*t == '*') t++; else if (*t == '?') for (t++, s1++; *t == '*' || *t == '?'; t++) if (*t == '?') *s1++ = *t; while ((*s1++ = *t++)) ; } return pattern;}
开发者ID:ItsAGeekThing,项目名称:Xtheme,代码行数:34,
示例13: m_whowas/*** m_whowas** parv[0] = sender prefix** parv[1] = nickname queried*/static voidm_whowas(struct Client *client_p, struct Client *source_p, int parc, char *parv[]){ static time_t last_used = 0L; if(parc < 2 || BadPtr(parv[1])) { sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); return; } if((last_used + ConfigFileEntry.pace_wait_simple) > CurrentTime) { sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name, "WHOWAS"); sendto_one(source_p, form_str(RPL_ENDOFWHOWAS), me.name, parv[0], parv[1]); return; } else { last_used = CurrentTime; } whowas_do(client_p, source_p, parc, parv);}
开发者ID:BackupTheBerlios,项目名称:shadowircd,代码行数:30,
示例14: m_sasl/* * SASL message * * parv[0]: prefix * parv[1]: distribution mask * parv[2]: target PUID * parv[3]: mode/state * parv[4]: data * parv[5]: out-of-bound data */static int m_sasl(aClient *cptr, aClient *sptr, int parc, char *parv[]){ if (!SASL_SERVER || MyClient(sptr) || (parc < 4) || !parv[4]) return 0; if (!stricmp(parv[1], me.name)) { aClient *target_p; /* is the PUID valid? */ if ((target_p = decode_puid(parv[2])) == NULL) return 0; if (target_p->user == NULL) make_user(target_p); /* reject if another SASL agent is answering */ if (*target_p->sasl_agent && stricmp(parv[0], target_p->sasl_agent)) return 0; else strlcpy(target_p->sasl_agent, parv[0], sizeof(target_p->sasl_agent)); if (*parv[3] == 'C') sendto_one(target_p, "AUTHENTICATE %s", parv[4]); else if (*parv[3] == 'D') { if (*parv[4] == 'F') sendto_one(target_p, err_str(ERR_SASLFAIL), me.name, BadPtr(target_p->name) ? "*" : target_p->name); else if (*parv[4] == 'S') { target_p->sasl_complete++; sendto_one(target_p, err_str(RPL_SASLSUCCESS), me.name, BadPtr(target_p->name) ? "*" : target_p->name); } *target_p->sasl_agent = '/0'; } return 0; } /* not for us; propagate. */ sendto_serv_butone_token(cptr, parv[0], MSG_SASL, TOK_SASL, "%s %s %c %s %s", parv[1], parv[2], *parv[3], parv[4], parc > 5 ? parv[5] : ""); return 0;}
开发者ID:Adam-,项目名称:unrealircd,代码行数:56,
示例15: m_quit/* * m_quit - client message handler * * parv[0] = sender prefix * parv[parc - 1] = comment */int m_quit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]){ char *quitnocolour = 0; int quittype = 0; int ret = 0; assert(0 != cptr); assert(0 != sptr); assert(cptr == sptr); ret = find_fline(cptr, sptr, parv[parc-1], WFFLAG_QUIT, parv[1]); if (ret != 0) { if (ret == 2) return CPTR_KILLED; else parv[parc - 1] = ""; } if (cli_user(sptr)) { struct Membership* chan; for (chan = cli_user(sptr)->channel; chan; chan = chan->next_channel) { if (!IsZombie(chan) && !member_can_send_to_channel(chan)) quittype |= 1; if (chan->channel->mode.mode & MODE_NOQUITPARTS) quittype |= 2; if (parc > 1 && !BadPtr(parv[parc - 1]) && HasColour(parv[parc - 1])) { if (chan->channel->mode.mode & MODE_NOCOLOUR) quittype |= 2; else if (chan->channel->mode.mode & MODE_STRIP) quittype |= 4; } } } if (parc > 1 && !BadPtr(parv[parc - 1])) { if (quittype & 1) return exit_client(cptr, sptr, sptr, "Signed off"); else if (quittype & 2) return exit_client(cptr, sptr, sptr, "Quit"); else if (quittype & 4 ) { if (!quitnocolour) quitnocolour = (char*)StripColour(parv[parc - 1]); return exit_client_msg(cptr, sptr, sptr, "Quit: %s", quitnocolour); } else return exit_client_msg(cptr, sptr, sptr, "Quit: %s", parv[parc - 1]); } else return exit_client(cptr, sptr, sptr, "Quit");}
开发者ID:macressler,项目名称:nefarious,代码行数:52,
示例16: m_join/** Handle a JOIN message from a client connection. * See @ref m_functions for discussion of the arguments. * @param[in] cptr Client that sent us the message. * @param[in] sptr Original source of message. * @param[in] parc Number of arguments. * @param[in] parv Argument vector. */int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]){ struct JoinBuf join; struct JoinBuf create; char *p = 0; char *chanlist; char *name; char *keys; if (parc < 2 || *parv[1] == '/0') return need_more_params(sptr, "JOIN"); if (!IsAnOper(sptr) && IsRestrictJoin(sptr)) { send_reply(sptr, ERR_BANNEDFROMCHAN, parv[1]); return 0; } joinbuf_init(&join, sptr, cptr, JOINBUF_TYPE_JOIN, 0, 0); joinbuf_init(&create, sptr, cptr, JOINBUF_TYPE_CREATE, 0, TStime()); chanlist = last0(cptr, sptr, parv[1]); /* find last "JOIN 0" */ keys = parv[2]; /* remember where keys are */ for (name = ircd_strtok(&p, chanlist, ","); name; name = ircd_strtok(&p, 0, ",")) { char *key = 0; /* If we have any more keys, take the first for this channel. */ if (!BadPtr(keys) && (keys = strchr(key = keys, ','))) *keys++ = '/0'; /* Empty keys are the same as no keys. */ if (key && !key[0]) key = 0; if (!IsChannelName(name) || !strIsIrcCh(name)) { /* bad channel name */ send_reply(sptr, ERR_NOSUCHCHANNEL, name); continue; } if (cli_user(sptr)->joined >= get_client_maxchans(sptr) && !HasPriv(sptr, PRIV_CHAN_LIMIT)) { send_reply(sptr, ERR_TOOMANYCHANNELS, name); break; /* no point processing the other channels */ } do_join(cptr, sptr, &join, &create, name, key, 0); } joinbuf_flush(&join); /* must be first, if there's a JOIN 0 */ joinbuf_flush(&create); return 0;}
开发者ID:evilnet,项目名称:nefarious2,代码行数:65,
示例17: whowas_dostatic intwhowas_do(struct Client *client_p, struct Client *source_p, int parc, char *parv[]){ struct Whowas *temp; int cur = 0; int max = -1, found = 0; char *p, *nick; if(parc < 2 || BadPtr(parv[1])) { sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, parv[0]); return 0; } if(parc > 2) max = atoi(parv[2]); if(parc > 3) if(hunt_server(client_p, source_p, ":%s WHOWAS %s %s :%s", 3, parc, parv)) return 0; if((p = strchr(parv[1], ','))) *p = '/0'; nick = parv[1]; temp = WHOWASHASH[hash_whowas_name(nick)]; found = 0; for (; temp; temp = temp->next) { if(!irccmp(nick, temp->name)) { sendto_one(source_p, form_str(RPL_WHOWASUSER), me.name, parv[0], temp->name, temp->username, (IsOperAdmin(source_p))? temp->hostname : temp->rhostname, temp->realname); if(ConfigServerHide.hide_servers && !IsOper(source_p)) sendto_one(source_p, form_str(RPL_WHOISSERVER), me.name, parv[0], temp->name, ServerInfo.network_name, myctime(temp->logoff)); else sendto_one(source_p, form_str(RPL_WHOISSERVER), me.name, parv[0], temp->name, temp->servername, myctime(temp->logoff)); cur++; found++; } if(max > 0 && cur >= max) break; } if(!found) sendto_one(source_p, form_str(ERR_WASNOSUCHNICK), me.name, parv[0], nick); sendto_one(source_p, form_str(RPL_ENDOFWHOWAS), me.name, parv[0], parv[1]); return 0;}
开发者ID:BackupTheBerlios,项目名称:shadowircd,代码行数:57,
示例18: m_privmsg/** * Handle PRIVMSG commands * * @param source is the nick of the person whom sent the privmsg * @param receiver is the nick whom it was sent to * @param msg is the message that was sent * * @return always returns MOD_CONT */int m_privmsg(char *source, char *receiver, char *msg){ char *s; User *u; PrivMsg *p; if (BadPtr(source) || BadPtr(receiver) || BadPtr(msg)) { return MOD_CONT; } u = user_find(source); if (!u) { alog(LOG_NONEXISTANT, "%s: user record for %s not found", msg, source); denora_cmd_notice(receiver, source, getstring(NULL, USER_RECORD_NOT_FOUND)); return MOD_CONT; } if (*receiver == '#') { if (denora->do_sql && !LargeNet) { if (stricmp(u->nick, s_StatServ) || stricmp(u->nick, s_StatServ_alias)) { do_cstats(u, receiver, msg); } } } else { /* If a server is specified ([email C++ Balise_Group_Close_InfraLib函数代码示例 C++ B_TRANSLATE_SYSTEM_NAME函数代码示例
|