mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-13 10:20:28 +00:00
Merge branch 'numeric-329'
* numeric-329: New numeric 329: get channel creation time on "MODE #chan" commands Save channel creation time; new function Channel_CreationTime()
This commit is contained in:
commit
de6f08cc04
@ -697,6 +697,14 @@ Channel_TopicWho(CHANNEL *Chan)
|
||||
return Chan->topic_who;
|
||||
} /* Channel_TopicWho */
|
||||
|
||||
|
||||
GLOBAL unsigned int
|
||||
Channel_CreationTime(CHANNEL *Chan)
|
||||
{
|
||||
assert(Chan != NULL);
|
||||
return (unsigned int) Chan->creation_time;
|
||||
} /* Channel_CreationTime */
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@ -834,6 +842,9 @@ Channel_Create( const char *Name )
|
||||
strlcpy( c->name, Name, sizeof( c->name ));
|
||||
c->hash = Hash( c->name );
|
||||
c->next = My_Channels;
|
||||
#ifndef STRICT_RFC
|
||||
c->creation_time = time(NULL);
|
||||
#endif
|
||||
My_Channels = c;
|
||||
LogDebug("Created new channel structure for \"%s\".", Name);
|
||||
return c;
|
||||
|
@ -30,6 +30,7 @@ typedef struct _CHANNEL
|
||||
char modes[CHANNEL_MODE_LEN]; /* Channel modes */
|
||||
array topic; /* Topic of the channel */
|
||||
#ifndef STRICT_RFC
|
||||
time_t creation_time; /* Channel creation time */
|
||||
time_t topic_time; /* Time when topic was set */
|
||||
char topic_who[CLIENT_NICK_LEN];/* Nickname of user that set topic */
|
||||
#endif
|
||||
@ -118,6 +119,7 @@ GLOBAL CHANNEL *Channel_Create PARAMS(( const char *Name ));
|
||||
#ifndef STRICT_RFC
|
||||
GLOBAL unsigned int Channel_TopicTime PARAMS(( CHANNEL *Chan ));
|
||||
GLOBAL char *Channel_TopicWho PARAMS(( CHANNEL *Chan ));
|
||||
GLOBAL unsigned int Channel_CreationTime PARAMS(( CHANNEL *Chan ));
|
||||
#endif
|
||||
|
||||
GLOBAL bool Channel_AddInvite PARAMS((CHANNEL *c, const char *Mask, bool OnlyOnce ));
|
||||
|
@ -294,8 +294,17 @@ Channel_Mode_Answer_Request(CLIENT *Origin, CHANNEL *Channel)
|
||||
if (the_args[0])
|
||||
strlcat(the_modes, the_args, sizeof(the_modes));
|
||||
|
||||
return IRC_WriteStrClient(Origin, RPL_CHANNELMODEIS_MSG,
|
||||
Client_ID(Origin), Channel_Name(Channel), the_modes);
|
||||
if (!IRC_WriteStrClient(Origin, RPL_CHANNELMODEIS_MSG,
|
||||
Client_ID(Origin), Channel_Name(Channel),
|
||||
the_modes))
|
||||
return DISCONNECTED;
|
||||
#ifndef STRICT_RFC
|
||||
if (!IRC_WriteStrClient(Origin, RPL_CREATIONTIME_MSG,
|
||||
Client_ID(Origin), Channel_Name(Channel),
|
||||
Channel_CreationTime(Channel)))
|
||||
return DISCONNECTED;
|
||||
#endif
|
||||
return CONNECTED;
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,6 +65,7 @@
|
||||
#define RPL_LIST_MSG "322 %s %s %ld :%s"
|
||||
#define RPL_LISTEND_MSG "323 %s :End of LIST"
|
||||
#define RPL_CHANNELMODEIS_MSG "324 %s %s +%s"
|
||||
#define RPL_CREATIONTIME_MSG "329 %s %s %ld"
|
||||
#define RPL_NOTOPIC_MSG "331 %s %s :No topic is set"
|
||||
#define RPL_TOPIC_MSG "332 %s %s :%s"
|
||||
#define RPL_TOPICSETBY_MSG "333 %s %s %s %u"
|
||||
|
Loading…
Reference in New Issue
Block a user