Server IP : 103.119.228.120 / Your IP : 18.225.195.4 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/ssl/local/ssl/local/share/perl5/Net/OSCAR/XML/ |
Upload File : |
# The top-level structure is a 'define'. This defines either a building-block -- # a 'struct' which can get pulled into the various SNACs -- or a SNAC. SNACs have # family and subtype, and optionally a channel. # # 'ref' is like #include. There are some basic structures, like userinfo, which appear # inside multiple SNACs. # # Then there are the data types: # Numeric types: byte (8-bit), word (16-bit), dword (32-bit). # Raw character data: data # This can have a 'length prefix' attached to it. # The length prefix is a numeric type. The value of the length prefix # is the number of bytes of character data. The existence of this # length prefix is why it might be useful for data to have sub-data. # Data types can have 'counts'. A count of -1 represents an infinite count. # Counted data is passed around as a listref. For instance, a capabilities block # is a series of 16-byte values, so by attaching count=-1 to that data item, # you can pass in a listref with the individual capabilities. There is also # fixed-length character data, specified via the length attribute on the data element. # Data can be null-terminated and padded. The value for the pad attribute specifies # the octet value to use for padding. # # There are also enums, which are exactly like numeric types except the raw numeric # values gets translated into some other values, so if you have a message-type # word, you can have 1 => "foo", and you'll get a "foo" when decoding a 1 and a # 1 when encoding a "foo". # # Things that have, or can have, length prefixes, take an optional 'default_generate' # attribute. If set to yes, this will give them a default value of "present but empty". # # Note that if you have counted character data, you will get a listref of hashrefs. # For instance: # <data count="-1"> # <word name="foo" /> # <word name="bar" /> # </data> # Will give you: # [ # { foo => 1, bar => 2 }, # { foo => 1, bar => 4 }, # ] # # You can also have tlvchains and TLVs... # # If you attach a name to a TLV, as opposed to elements within that TLV, # presence of that name in the data hash will correspond with presence of # that TLV in the TLV chain, without regard to the value of said TLV. # # # family=0 is a global fallback SNAC family. That is: # <define family="0" subtype="1" /> # will get picked up on for all SNACs of subtype 1 where there is no define for # that specific family. <!ELEMENT oscar (define)+> <!ELEMENT define (ref|byte|word|dword|data|tlvchain|enum)+> <!ATTLIST define name ID #REQUIRED channel CDATA #IMPLIED family CDATA #IMPLIED subtype CDATA #IMPLIED flags1 CDATA #IMPLIED flags2 CDATA #IMPLIED > <!ELEMENT ref (EMPTY)> <!ATTLIST ref name IDREF #REQUIRED > <!ELEMENT byte (#PCDATA)> <!ATTLIST byte name CDATA #IMPLIED count CDATA #IMPLIED > <!ELEMENT word (#PCDATA)> <!ATTLIST word name CDATA #IMPLIED order (network|vax) #DEFAULT network count CDATA #IMPLIED > <!ELEMENT dword (#PCDATA)> <!ATTLIST dword name CDATA #IMPLIED order (network|vax) #DEFAULT network count CDATA #IMPLIED > <!ELEMENT data (ref|byte|word|dword|data|tlvchain|enum)+> <!ATTLIST data name CDATA #IMPLIED prefix_order (network|vax) #DEFAULT network length_prefix (byte|word|dword) #IMPLIED length CDATA #IMPLIED count CDATA #IMPLIED default_generate (yes|no) #DEFAULT no null_terminated (yes|no) #DEFAULT no pad CDATA #IMPLIED > <!ELEMENT enum (edef+)> <!ATTLIST enum type (byte|word|dword) #REQUIRED name CDATA #implied order (network|vax) #DEFAULT network count CDATA #implied > <!ELEMENT edef (EMPTY)> <!ATTLIST edef default (yes|no) #DEFAULT no name CDATA #REQUIRED value CDATA #REQUIRED > <!ELEMENT tlvchain (tlv*)> <!ATTLIST tlvchain subtyped (yes|no) #DEFAULT no <!-- A 'subtyped' TLV is type/subtype/length/value, where subtype and length are both bytes. It's used in extended status. --> count_prefix (byte|word|dword) #IMPLIED length_prefix (byte|word|dword) #IMPLIED prefix_order (network|vax) #DEFAULT network length CDATA #IMPLIED default_generate (yes|no) #DEFAULT no > <!ELEMENT tlv (ref|byte|word|dword|data|tlvchain|enum)+> <!ATTLIST tlv type CDATA #REQUIRED subtype CDATA #IMPLIED <!-- For subtyped TLVs --> default_generate (yes|no) #DEFAULT no <!-- If the TLV has a name, that key being present in the data will correspond to the existance of that TLV, without regard to its value --> name CDATA #IMPLIED <!-- If the TLV has a count, it will get listified. Behavior of TLVs which have a count but not a name is undefined. --> count CDATA #IMPLIED >