浏览代码

Updated for SA_NSDataExtensions changes

master
achmizs 4 年前
父节点
当前提交
7aa921ff20
共有 2 个文件被更改,包括 60 次插入60 次删除
  1. 25
    25
      IRCClient/IRCClientChannel.m
  2. 35
    35
      IRCClient/IRCClientSession.m

+ 25
- 25
IRCClient/IRCClientChannel.m 查看文件

-(int) part { -(int) part {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PART %s", "PART %s",
_name.SA_terminatedCString);
_name.terminatedCString);
} }


-(int) invite:(NSData *)nick { -(int) invite:(NSData *)nick {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"INVITE %s %s", "INVITE %s %s",
nick.SA_terminatedCString,
_name.SA_terminatedCString);
nick.terminatedCString,
_name.terminatedCString);
} }


-(int) refreshNames { -(int) refreshNames {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NAMES %s", "NAMES %s",
_name.SA_terminatedCString);
_name.terminatedCString);
} }


-(int) setChannelTopic:(NSData *)newTopic { -(int) setChannelTopic:(NSData *)newTopic {
if (newTopic) if (newTopic)
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"TOPIC %s :%s", "TOPIC %s :%s",
_name.SA_terminatedCString,
newTopic.SA_terminatedCString);
_name.terminatedCString,
newTopic.terminatedCString);
else else
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"TOPIC %s", "TOPIC %s",
_name.SA_terminatedCString);
_name.terminatedCString);
} }


-(int) setMode:(NSData *)mode -(int) setMode:(NSData *)mode
[NSMutableData dataWithLength:mode.length + 1]); [NSMutableData dataWithLength:mode.length + 1]);
sprintf(fullModeString.mutableBytes, sprintf(fullModeString.mutableBytes,
"%s %s", "%s %s",
mode.SA_terminatedCString,
params.SA_terminatedCString);
mode.terminatedCString,
params.terminatedCString);
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"MODE %s %s", "MODE %s %s",
_name.SA_terminatedCString,
fullModeString.SA_terminatedCString);
_name.terminatedCString,
fullModeString.terminatedCString);
} else { } else {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"MODE %s", "MODE %s",
_name.SA_terminatedCString);
_name.terminatedCString);
} }
} }




return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :%s", "PRIVMSG %s :%s",
_name.SA_terminatedCString,
irc_color_convert_to_mirc(message.SA_terminatedCString));
_name.terminatedCString,
irc_color_convert_to_mirc(message.terminatedCString));
} }


-(int) action:(NSData *)action { -(int) action:(NSData *)action {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :\x01" "ACTION %s\x01", "PRIVMSG %s :\x01" "ACTION %s\x01",
_name.SA_terminatedCString,
irc_color_convert_to_mirc(action.SA_terminatedCString));
_name.terminatedCString,
irc_color_convert_to_mirc(action.terminatedCString));
} }


-(int) notice:(NSData *)notice { -(int) notice:(NSData *)notice {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NOTICE %s :%s", "NOTICE %s :%s",
_name.SA_terminatedCString,
notice.SA_terminatedCString);
_name.terminatedCString,
notice.terminatedCString);
} }


-(int) kick:(NSData *)nick -(int) kick:(NSData *)nick
if (reason) if (reason)
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"KICK %s %s :%s", "KICK %s %s :%s",
_name.SA_terminatedCString,
nick.SA_terminatedCString,
reason.SA_terminatedCString);
_name.terminatedCString,
nick.terminatedCString,
reason.terminatedCString);
else else
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"KICK %s %s", "KICK %s %s",
_name.SA_terminatedCString,
nick.SA_terminatedCString);
_name.terminatedCString,
nick.terminatedCString);
} }


-(int) ctcpRequest:(NSData *)request { -(int) ctcpRequest:(NSData *)request {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :\x01%s\x01", "PRIVMSG %s :\x01%s\x01",
_name.SA_terminatedCString,
request.SA_terminatedCString);
_name.terminatedCString,
request.terminatedCString);
} }


/****************************/ /****************************/

+ 35
- 35
IRCClient/IRCClientSession.m 查看文件



-(int) connect { -(int) connect {
return irc_connect(_irc_session, return irc_connect(_irc_session,
_server.SA_terminatedCString,
_server.terminatedCString,
(unsigned short) _port, (unsigned short) _port,
(_password.length > 0 ? _password.SA_terminatedCString : NULL),
_nickname.SA_terminatedCString,
_username.SA_terminatedCString,
_realname.SA_terminatedCString);
(_password.length > 0 ? _password.terminatedCString : NULL),
_nickname.terminatedCString,
_username.terminatedCString,
_realname.terminatedCString);
} }


-(void) disconnect { -(void) disconnect {


-(int) sendRaw:(NSData *)message { -(int) sendRaw:(NSData *)message {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
message.SA_terminatedCString);
message.terminatedCString);
} }


- (int) quit:(NSData *)reason { - (int) quit:(NSData *)reason {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"QUIT :%s", "QUIT :%s",
(reason (reason
? reason.SA_terminatedCString
? reason.terminatedCString
: "quit")); : "quit"));
} }


if (key && key.length > 0) if (key && key.length > 0)
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"JOIN %s :%s", "JOIN %s :%s",
channel.SA_terminatedCString,
key.SA_terminatedCString);
channel.terminatedCString,
key.terminatedCString);
else else
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"JOIN %s", "JOIN %s",
channel.SA_terminatedCString);
channel.terminatedCString);
} }


-(int) names:(NSData *)channel { -(int) names:(NSData *)channel {
if (channel) if (channel)
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NAMES %s", "NAMES %s",
channel.SA_terminatedCString);
channel.terminatedCString);
else else
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NAMES"); "NAMES");
if (channel) if (channel)
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"LIST %s", "LIST %s",
channel.SA_terminatedCString);
channel.terminatedCString);
else else
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"LIST"); "LIST");
if (mode) if (mode)
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"MODE %s %s", "MODE %s %s",
_nickname.SA_terminatedCString,
mode.SA_terminatedCString);
_nickname.terminatedCString,
mode.terminatedCString);
else else
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"MODE %s", "MODE %s",
_nickname.SA_terminatedCString);
_nickname.terminatedCString);
} }


-(int) nick:(NSData *)newnick { -(int) nick:(NSData *)newnick {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NICK %s", "NICK %s",
newnick.SA_terminatedCString);
newnick.terminatedCString);
} }


-(int) who:(NSData *)nickmask { -(int) who:(NSData *)nickmask {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"WHO %s", "WHO %s",
nickmask.SA_terminatedCString);
nickmask.terminatedCString);
} }


-(int) whois:(NSData *)nick { -(int) whois:(NSData *)nick {


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"WHOIS %s", "WHOIS %s",
nick.SA_terminatedCString);
nick.terminatedCString);
} }


-(int) message:(NSData *)message -(int) message:(NSData *)message


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :%s", "PRIVMSG %s :%s",
target.SA_terminatedCString,
irc_color_convert_to_mirc(message.SA_terminatedCString));
target.terminatedCString,
irc_color_convert_to_mirc(message.terminatedCString));
} }


-(int) action:(NSData *)action -(int) action:(NSData *)action


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :\x01" "ACTION %s\x01", "PRIVMSG %s :\x01" "ACTION %s\x01",
target.SA_terminatedCString,
irc_color_convert_to_mirc(action.SA_terminatedCString));
target.terminatedCString,
irc_color_convert_to_mirc(action.terminatedCString));
} }


-(int) notice:(NSData *)notice -(int) notice:(NSData *)notice


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NOTICE %s :%s", "NOTICE %s :%s",
target.SA_terminatedCString,
notice.SA_terminatedCString);
target.terminatedCString,
notice.terminatedCString);
} }


-(int) ctcpRequest:(NSData *)request -(int) ctcpRequest:(NSData *)request


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :\x01%s\x01", "PRIVMSG %s :\x01%s\x01",
target.SA_terminatedCString,
request.SA_terminatedCString);
target.terminatedCString,
request.terminatedCString);
} }


-(int) ctcpReply:(NSData *)reply -(int) ctcpReply:(NSData *)reply


return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"NOTICE %s :\x01%s\x01", "NOTICE %s :\x01%s\x01",
target.SA_terminatedCString,
reply.SA_terminatedCString);
target.terminatedCString,
reply.terminatedCString);
} }


/********************************/ /********************************/
fromUser:(NSData *)nick { fromUser:(NSData *)nick {
NSData *nickOnly = [IRCClientSession nickFromNickUserHost:nick]; NSData *nickOnly = [IRCClientSession nickFromNickUserHost:nick];


if (!strncmp(request.SA_terminatedCString, "PING", 4)) {
if (!strncmp(request.terminatedCString, "PING", 4)) {
[self ctcpReply:request [self ctcpReply:request
target:nickOnly]; target:nickOnly];
} else if (!strcmp(request.SA_terminatedCString, "VERSION")) {
} else if (!strcmp(request.terminatedCString, "VERSION")) {
const char *versionFormat = "VERSION %s"; const char *versionFormat = "VERSION %s";
NSMutableData* versionReply = [NSMutableData dataWithLength:(strlen(versionFormat) + (_version.length - 2))]; NSMutableData* versionReply = [NSMutableData dataWithLength:(strlen(versionFormat) + (_version.length - 2))];
sprintf(versionReply.mutableBytes, sprintf(versionReply.mutableBytes,
versionFormat, versionFormat,
_version.SA_terminatedCString);
_version.terminatedCString);


[self ctcpReply:versionReply [self ctcpReply:versionReply
target:nickOnly]; target:nickOnly];
} else if (!strcmp(request.SA_terminatedCString, "FINGER")) {
} else if (!strcmp(request.terminatedCString, "FINGER")) {
const char *fingerFormat = "FINGER %s (%s) Idle 0 seconds)"; const char *fingerFormat = "FINGER %s (%s) Idle 0 seconds)";
NSMutableData* fingerReply = [NSMutableData dataWithLength:(strlen(fingerFormat) + (_username.length - 2) + (_realname.length - 2))]; NSMutableData* fingerReply = [NSMutableData dataWithLength:(strlen(fingerFormat) + (_username.length - 2) + (_realname.length - 2))];
sprintf(fingerReply.mutableBytes, sprintf(fingerReply.mutableBytes,
fingerFormat, fingerFormat,
_username.SA_terminatedCString,
_realname.SA_terminatedCString);
_username.terminatedCString,
_realname.terminatedCString);


[self ctcpReply:fingerReply [self ctcpReply:fingerReply
target:nickOnly]; target:nickOnly];
} else if (!strcmp(request.SA_terminatedCString, "TIME")) {
} else if (!strcmp(request.terminatedCString, "TIME")) {
time_t current_time; time_t current_time;
char timestamp[40]; char timestamp[40];
struct tm *time_info; struct tm *time_info;

正在加载...
取消
保存