The qDecoder Project

[svn] / trunk / CHANGES

Parent Directory Parent Directory  Revision Log


Revision 580
Wed Apr 28 04:29:40 2010 UTC (3 weeks, 4 days ago) by wolkykim
File size: 17424 byte(s)
o adjust to compile with -g flag
    1                             [The qDecoder Project]
    2 -------------------------------------------------------------------------------
    3 
    4 qDecoder Changes
    5 
    6 ``FIX'', ``NEW'', ``REP'' and ``REM'' are stand on ``Fixed or Modified'',
    7 ``New'', ``Replaced'' and ``Removed''.
    8 
    9   Release 10.1.6
   10     ADD) qHexEncode(), qHexDecode()
   11     FIX) qHashMd5Str(), qHashMd5File - fix to use qHexEncode()
   12 
   13   Release 10.1.4
   14     FIX) qCountRead(), qCountUpdate() - bug fix.
   15     FIX) replace strerror() to thread-safe strerror_r().
   16     FIX) AutoConf and Makefile adjustments.
   17 
   18   Release 10.1.2
   19     ADD) qBase64Encode(), qBase64Decode()
   20     ADD) qStrIsIpv4Addr()
   21     ADD) qStrTest()
   22     REP) qStrIsAlnum() -> qStrTest()
   23     REP) qEncodeUrl() -> qUrlEncode()
   24     REP) qDecodeUrl() -> qUrlDecode()
   25 
   26   Release 10.1.1
   27     FIX) Q_HTTPCLIENT uses TCP_NODELAY socket to improve performance.
   28     FIX) Q_HTTPCLIENT performance improvements.
   29     ADD) Add qStrDupf() - duplicate a formatted string.
   30     FIX) qSocketClose() - added timeoutms parameter.
   31     ADD) Q_OBSTACK->writeFinal() - write out merged final data to the file descriptor.
   32     FIX) Q_ENTRY->putStrf() - fix memory leak
   33     FIX) merge qCount.c and qSed.c into qUtil.c
   34   Release 10.1.0
   35     ADD) qIo.c
   36       REP) qSocketWaitReadable() => qIoWaitReadable()
   37       REP) qSocketWaitWritable() => qIoWaitWritable()
   38       REP) qSocketRead() => qIoRead()
   39       REP) qSocketWrite() => qIoWrite()
   40       REP) qSocketGets() => qIoGets()
   41       REP) qSocketPuts() => qIoPuts()
   42       REP) qSocketPrintf() => qIoPrintf()
   43       REP) qSocketSendfile() => qIoSend()
   44       REP) qSocketSaveIntoFile() => qIoSend()
   45       REP) qSocketSaveIntoMemory() => qIoRead()
   46   Release 10.0.0
   47     ADD) Added "--enable-threadsafe" option to support multi-thread program
   48     model.
   49     ADD) Q_HTTPCLIENT (HTTP client)
   50     FIX) Q_HASHTBL (Object of dynamic hash-table)
   51       Add thread-safe feature.
   52       Introduce Object-C style interface. ex) qHashtblGetStr() =>
   53       Q_HASHTBL->getStr()
   54     FIX) Q_HASHARR (Object of static hash-table)
   55       Add thread-safe feature.
   56       Introduce Object-C style interface. ex) qHasharrGetStr() =>
   57       Q_HASHARR->getStr()
   58     FIX) Q_ENTRY (Object of linked-list data structure)
   59       Add thread-safe feature.
   60       Introduce Object-C style interface. ex) qEntryGetStr() =>
   61       Q_ENTRY->getStr()
   62     FIX) Q_OBSTACK (Object of object stack data structure)
   63       Add thread-safe feature.
   64       Introduce Object-C style interface. ex) qObstackGrow() =>
   65       Q_OBSTACK->grow()
   66     FIX) Q_DATABASE (Object of object stack data structure)
   67       Add thread-safe feature.
   68       Introduce Object-C style interface. ex) qDbOpen() => Q_DB->open()
   69     ADD) Added timeout parameter to qSocketOpen().
   70     ADD) qMkdir() - attempts to create a directory recursively.
   71     FIX) configure script supports --enable-fastcgi option.
   72     FIX) Fixed bug about qCountUpdate(). It did not return updated counter
   73     value.
   74     FIX) Wrong MD5 checksum on a 64bit machine. (reported by SimenKing)
   75     REM) qCgiResponseError() is removed.
   76     REP) qHtmlIsEmail() => qStrIsEmail()
   77     REP) qHtmlIsUrl() => qStrIsUrl()
   78     ADD) qFileCheckPath() - validate file path.
   79     ADD) qFileCorrectPath() - correct file path.
   80     ADD) qFileGetAbsPath() - get absolute system path.
   81     ADD) qSysGetIp() - get system IP address string.
   82     ADD) Q_ENTRY->truncate()
   83   Release 9.0.3
   84     NEW) Modified autoconf script and source codes to support FastCGI.
   85   Release 9.0.2
   86     FIX) large file problems. (changing some size_t type to off_t type)
   87     FIX) fixed up shared library building problem on FreeBSD AMD 64 machine.
   88   Release 9.0.1
   89     FIX) qCgiRequestParseQueries() - quoted boundary patch. (by Hidai Kenichi)
   90     NEW) qStrUnchar() - remove character from head and tail of the string.
   91     NEW) qDecoderVersion() - get the version string of qDecoder library.
   92     FIX) minor fixes related packaging.
   93   Release 9.0
   94     This is new branch of qDecoder.
   95     qDecoder 9.0 does not support lower version compatibility any more.
   96     Distributed under BSD-like License.
   97   Release 8.0
   98     NEW) qDecoderSetUploadBase() - Initialize qDecoder() for progressive
   99     uploading.
  100     FIX) qDecoder() - Now qDecoder() supports progressive uploading and direct
  101     file saving into disk.
  102     NEW) qSedArgAddDirect() - For huge size(over 1024 - 1) value.
  103   Release 7.1.1
  104     FIX) qSedArgAdd() - Adjust miss typed variable length. (1024*64 => 1024)
  105   Release 7.1
  106     NEW) qGetTimeStr() - Generate date string formatted as 'YYYYMMDDhhmmss'.
  107     NEW) qJavaScript() - Print out some JavaScript code.
  108     NEW) qAwkStr() - Scanning pattern from string.
  109     FIX) qAwkOpen() - Compatibility increment
  110     FIX) qAwkNext() - Expand array size to 1024(before 256)
  111     FIX) qCountRead() - Compatibility increment
  112     FIX) qCountSave() - Compatibility increment
  113     FIX) qCountUpdate() - Compatibility increment
  114     FIX) qDecoder() - Now qdecoder uses more smaller memory
  115     FIX) qCheckFile() - Utility increment
  116     New socket functions(unix only). Please refer the reference for more
  117     details.
  118     NEW) qSocketOpen()
  119     NEW) qSocketClose()
  120     NEW) qSocketWaitReadable()
  121     NEW) qSocketRead()
  122     NEW) qSocketGets()
  123     NEW) qSocketWrite()
  124     NEW) qSocketPuts()
  125     NEW) qSocketPrintf()
  126     NEW) qSocketSendFile()
  127     NEW) qSocketSaveIntoFile()
  128     NEW) qSocketSetNonblock()
  129     NEW) qSocketConv2file()
  130   Release 7.0.1
  131     NEW) qDecoder() - Added another argument, "variable_name.contenttype", when
  132     file is uploaded.
  133     NEW) qCookieValue() - Return only cookie data.
  134     NEW) qValueType() - Return the type of query.
  135     NEW) qfopen(), qfclose() - Open file stream with file lock.
  136     FIX) qPrintf(), qPuts() - Added new modes.
  137     FIX) qSession() - Changed return type.
  138   Release 7.0
  139     NEW) qSession...() - Session related functions
  140     NEW) qMD5Str(), qMD5File() - Calculate a message-digest
  141     fingerprint(checksum).
  142     NEW) qUniqueID() - Always returns unique 32 bytes string.
  143     NEW) qCookieRemove() - Remove cookie from client(browser).
  144     NEW) qfValueFirst(), qfValueNext() - Used for patching the arguments having
  145     an identical variable name inregular sequence.
  146     NEW) qsValueFirst(), qsValueNext() - Used for patching the arguments having
  147     an identical variable name inregular sequence.
  148     NEW) qGetContentFlag() - qCheck execution of qContentType().
  149     NEW) qFreeAll() - Deallocates the all allocated memories by qDecoder.
  150     FIX) qDecoder() - qcDecoder() is merged
  151     FIX) qSedStr(), qSedFile() - Changed parameters
  152     FIX) qCatFile() - Support formatted arguments, Support Win32 environment
  153     FIX) qCheckFile() - Support formatted parameters
  154     FIX) qURLencode - Does not encode '@', '.', '/', '', '-', '_', ':'
  155     character
  156     FIX) qRedirect - Regular code improvement
  157     FIX) qPrint(), qArgPrint, qsPrint, qfPrint - Changed return type
  158     FIX) qPuts() - Regular code improvement
  159     REP) qcDecoder() - Merged by qDecoder()
  160     REP) qAddCookie() - Merged by qValueAdd()
  161     REP) qSetCookie() - Renamed to qCookieSet()
  162     REP) qReadCounter(), qUpdateCounter(), qSaveCounter() - Renamed to
  163     qCountRead(), qCountSave(), qCountUpdate()
  164   Release 6.0.5
  165     FIX) qAddCookie() - Solves the problems in which qAddCookie() does not
  166     operate when there is no existing cookie (when _cookie_first_entry is NULL).
  167 
  168   Release 6.0.4
  169     NEW) qAddCookie() - Forcibly adds the cookie value to the cookie linked
  170     list.
  171     NEW) qResetContentFlag() - Initializes the system for ContentType() to be
  172     forcibly displayed in dublicate.
  173     FIX) qURLencode() - Adjusts the system so that "@./-?&=#:_" will not be
  174     encoded.
  175     FIX) qPrintf(), qPuts() - Modifies the token character into "
  176     `(){}[]<>"',rn" so that the character strings after '&' will not be
  177     linked at the automatic link function.
  178     FIX) qSetCookie(), qGetGMTime() - Solves the cookie settings-related
  179     problems occurring from the fact that, in connection with qGetGMTime() at
  180     Solaris machines, Time Zone is displayed not in GMT but in Local Time Zone
  181     such as KST while time is normally displayed in GMT.
  182     FIX) qReadFile(), qFileSize() - Supports Win32.
  183   Release 6.0.3
  184     NEW) qValueReplace() - Transposes the tokens or specific character strings
  185     of query strings into given character strings.
  186     NEW) qStrReplace() - Transposes the tokens or specific character strings of
  187     strings into given character strings.
  188     NEW) qReset() - Initializes qDecoder. (Deallocates memory and initializes
  189     internal variables)
  190     FIX) qAwkClose() - Modifies the system to have return values.
  191   Release 6.0.2
  192     NEW) Adds the static library creation project files for Microsoft Visual C++
  193     use.
  194     FIX) Converts those internally used functions (starting with '_') into
  195     "static".
  196   Release 6.0.1
  197     NEW) Applies Autoconf.
  198   Release 6.0
  199     REP) qCgienv() - Replacement function qCGIenv().
  200     FIX) qDecoder() - Adds the security code for overflow attacks when
  201     multipart/form-data is interpreted.
  202     FIX) qSaveStr() - Removes permission setup arguments for the compatibility
  203     with WIN32.
  204     FIX) Changes the name of structure Entry into Q_Entry.
  205     FIX) Changes the name of structure Cgienv into Q_CGIenv.
  206     FIX) Adjusts the installation path into /usr/local/lib, /usr/local/include
  207     in case of "make install".
  208     FIX) qDownload(), qDownloadMime() - Modifies the system for return values to
  209     have the number of transmitted bytes.
  210     FIX) qPrintf() - Modifies the system so that the length of combined
  211     character strings can be supported up to 10K.
  212     NEW) Supports the shared library (libqDecoder.so).
  213     NEW) qCGIenv() - Extended edition of qCgienv() of old versions.
  214   Release 5.0.8
  215     FIX) qSetCookie() - Corrects the sequence of arguments according to the
  216     standard specification.
  217     FIX) qURLdecode() - Changes the function prototype from void to char* so
  218     that the decoded string pointer can be returned.
  219     FIX) qDownload() - Modifies the system so that the entire file size can be
  220     identified when downloading at clients.
  221     NEW) qDownloadMime() - Transmits files to clients according to MIME.
  222     NEW) qFileSize() - Notifies the file size by the unit of byte.
  223   Release 5.0.7
  224     REP) qStrBig() - Replacement function qStrupr().
  225     NEW) qArgMake(), qArgPrint(), qArgMatch(), qArgEmprint(), qArgFree() - A
  226     group of functions that analyzes search queries, identifies the number of
  227     query hits inside strings, and displays the results making the matching
  228     parts in bold characters.
  229     NEW) qValueDefault() - Same as qValue(). But hands over the basic string
  230     value when there is no corresponding query name.
  231     NEW) qValueNotEmpty() - Same as qValue(). But displays error messages in
  232     case of NULL or blank character strings ("").
  233     NEW) qStrincmp() - Plays the role of the strncmp() function plus the
  234     stricmp() function. Compares the first n bytes of character strings without
  235     distinguishing uppercase/lowercase letters.
  236   Release 5.0.6
  237     FIX) qitocomma() - Solves the problems in which negative numbers are
  238     displayed as '-,123,456'.
  239     FIX) qURLencode() - Modifies the system so that a space ' ' can be encoded
  240     not into '+' but into '%20'.
  241     FIX) qUpdateCounter() - Modifies the problem of returning the 'existing
  242     value' into figures of 'existing value + update'.
  243     FIX) qDownload() - Changes the function type from void to int so that it can
  244     have return values when there is no file.
  245     FIX) qError(), qErrorContact() - Corrects the problems in which
  246     [Administrator: ...] is inserted before and after those messages set up as
  247     qErrorContact() (for original messages to be displayed without the
  248     insertion).
  249   Release 5.0.5
  250     REP) qStrStr() - Replacement function qStristr()
  251     REP) qSed() - Replacement function qSedFile()
  252     NEW) qStricmp() - Functionally the same as the strcmp() function. But does
  253     not distinguish uppercase/lowercase letters.
  254     NEW) qSedStr() - Performs source input by strings.
  255   Release 5.0.4
  256     REP) qFileCat() - Replacement function qCatFile().
  257     FIX) qUpdateCounter() - Modifies interfaces (so that the update
  258     increase/decrease can be numerically controlled).
  259     FIX) qDecoder() - Processes the arguments handed over to the environment
  260     variable of QUERY-STRING in the multipart/form-data method.
  261     NEW) qReadFile() - Reads files and stores them in memory.
  262     NEW) qSaveStr() - Stores the contents of strings in files.
  263   Release 5.0.3
  264     FIX) qPrintf(), qPuts() - Adds '&' to tokens again.
  265     NEW) qfGetLine() - Returns allocated memory pointers by reading a line of
  266     files regardless of the length.
  267   Release 5.0.2
  268     FIX) qSed() - Makes a modification so that NULL pointers can be inserted as
  269     the arg argumentation. Solves the problems in which the segmentation fault
  270     errors occur in case the first argument of arg is NULL (when the SSI
  271     function is to be used without conversion).
  272     FIX) qPrintf(), qPuts() - Removes the '&' character from tokens.
  273   Release 5.0.1
  274     FIX) qValue(), qiValue(), qfValue(), qfiValue(), qsValue(), qsiValue(),
  275     qcValue(), qciValue() - Uses vsprintf() instead of the vsnprintf() function
  276     due to the compatibility problem.
  277     NEW) qSed() - Displays specified symbols in files after changing them into
  278     defined character strings.
  279   Release 5.0
  280     REP) qSendFile() - Replacement function qFileCat().
  281     FIX) qValue(), qiValue(), qfValue(), qfiValue(), qsValue(), qsiValue(),
  282     qcValue(), qciValue() - Performs patch works so that arguments can be
  283     transmitted by formats.
  284     FIX) qPuts() - Removes '&' from the token list.
  285     NEW) qValueFirst() - Acquires the variable value for the first argument
  286     among the arguments transmitted in an identical variable name.
  287     NEW) qValueNext() - Acquires the next variable value.
  288     NEW) qRedirect() - The page-jump function using the location: header of
  289     HTTP.
  290     NEW) qFileCat() - Displays all the corresponding files in stdout.
  291   Release 4.3.1
  292     FIX) Modifies install/deinstall method of Makefile.
  293   Release 4.3
  294     FIX) qDecoder() - Performs patch works so that the queries handed over to
  295     SSI can be received.
  296     NEW) qAwkOpen()
  297     NEW) qAwkNext()
  298     NEW) qAwkClose()
  299     NEW) *qGetFirstEntry()
  300     NEW) *qitocomma()
  301   Release 4.2
  302     FIX) qDecoder() - Patches related to Macintosh IE.
  303     FIX) qGgienv() - Patches related to Apache 1.3.
  304     FIX) qGetGMTime() - Performance improvement.
  305     NEW) *qCGIname()
  306     NEW) qDownload()
  307     NEW) *qGetEnv()
  308     NEW) *qStrBig()
  309     NEW) *qStrStr()
  310   Release 4.0.1
  311     FIX) qfDecoder() - emoves the length restriction of one line in files.
  312     FIX) qDecoder() - Modifies the internal algorithm of the multipart/form-data
  313     format.
  314   Release 4.0
  315     FIX) qDecoder() - Supports file uploading.
  316     FIX) qfDecoder() - Processes those lines starting with # as explanatory
  317     notes.
  318     FIX) qURLencode() - Makes a modification for '@' and '.' not to be encoded.
  319     FIX) _decode_query() - Changes the function name into qURLdecode().
  320     FIX) qCheckEmail() - Allows '.' in ID.
  321     FIX) qPrintf(), qPuts() - Modes 10 through 16 are newly supported.
  322   Release 3.5
  323     FIX) _get_query() - Adds the confirmation that the environment variable is
  324     not set up.
  325     FIX) qCgienv() - Optimizes using environment variables that are used in
  326     Netscape and Explore in common.
  327     FIX) qSetCookie() - Changes the expiration-date designation from char* to
  328     the int type.
  329     FIX) qError() - Adds logging functions.
  330     FIX) qURLencode() - Makes a modification for numbers and English alphabets
  331     not to be encoded.
  332     NEW) qErrLog()
  333   Release 3.4.2
  334     FIX) qDecoder(), qfDecoder(), qcDecoder() - Modifies Linked List algorithm.
  335     FIX) qPuts() - Solves the problems in which warnings are given when
  336     compilation is performed at certain systems.
  337   Release 3.4.1
  338     FIX) qPrintf(), qPuts() - Removes the space displayed at the end of
  339     character strings.
  340   Release 3.4
  341     FIX) qCheckEmail() - Makes a modification for emails including '-' or '_' to
  342     be possible.
  343     FIX) qPrintf(), qPuts() - Corrects the problems in which < and > of
  344     character-string contents are displayed as '<' and '>' (displays them as <
  345     and >). Only those character strings such as 'mailto:guest@hongik.ac.kr'
  346     were automatically linked, but the automatic link of such types as
  347     'guest@hongik.ac.kr' can be performed.
  348     NEW) qSetCookie()
  349     NEW) *qURLencode()
  350     NEW) qGetGMTime()
  351   Release 3.3.1
  352     FIX) qDecoder() - Corrects the problem in which the '&' character of the
  353     query value is recognized as a separator.
  354   Release 3.3
  355     NEW) qcDecoder()
  356     NEW) *qcValue()
  357     NEW) qcPrint()
  358     NEW) qcFree()
  359   Release 3.2.2
  360     NEW) qUpdateCounter()
  361     NEW) qPuts()
  362     NEW) qCheckURL()
  363   Release 3.2
  364     NEW) qReadCounter()
  365     NEW) qSaveCounter()
  366     NEW) qStr09AZaz()
  367   Release 3.1
  368     NEW) qPrintf()
  369     NEW) qCheckEmail()
  370     NEW) qError()
  371   Release 3.0
  372     NEW) *qfDecoder()
  373     NEW) *qfValue()
  374     NEW) qfPrint()
  375     NEW) qError()
  376     NEW) *qRemoveSpace()
  377   Release 2.2
  378     NEW) qDecoder()
  379     NEW) *qValue()
  380     NEW) qPrint()
  381     NEW) qFree()
  382     NEW) qContentType()
  383     NEW) qCgienv()
  384     NEW) *qGetTime()
  385     NEW) qCheckFile()
  386     NEW) qSendFile()
  387 
  388  -------------------------------------------------------------------------------
  389                             [The qDecoder Project]

[Home] [About] [Examples] [Changes] [Download] [SVN Repository] [Install] [Reference]