[ https://issues.apache.org/jira/browse/TS-686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bryan Call closed TS-686. ------------------------- Resolution: Unresolved I don't think it is worth the effort at this time and time would be better spend on getting the c++ api finished off. This would definitely break binary compatibility > Change location in the APIs to be type specific > ----------------------------------------------- > > Key: TS-686 > URL: https://issues.apache.org/jira/browse/TS-686 > Project: Traffic Server > Issue Type: Improvement > Components: TS API > Affects Versions: 2.1.6 > Reporter: Bryan Call > Priority: Minor > Fix For: sometime > > > Change arguments for APIs to use type specific combinations of buffer and > location instead of having generic types (e.g., TSMBuffer, TSMLoc) that can > be interchanged. > Leif and I talked about this more after I sent and email to dev@ and we > agreed that combining the buffer and location would be better unless there > are a lot of APIs that require then to passed in separately. Looking over > the APIs I don't think this is the case. > Also, we talked about possibly having request and response being the same > type, so there wouldn't be two version of some of the APIs (e.g., > TSHttpHdrUrlGet()) > Parts of my email to dev@: > Looking at the three APIs below it is hard to tell the location/offset > really point to: > tsapi TSReturnCode TSHttpTxnClientReqGet(TSHttpTxn txnp, TSMBuffer* > bufp, TSMLoc* offset); > tsapi TSReturnCode TSHttpHdrUrlGet(TSMBuffer bufp, TSMLoc offset, > TSMLoc* locp); > tsapi const char* TSUrlSchemeGet(TSMBuffer bufp, TSMLoc offset, int > *length); > In a specific case that happened last week a person was taking bufp and > offset from TSHttpTxnClientReqGet() and passing the values to > TSUrlSchemeGet(). Since it didn't give him compile errors he only saw > the problem when the server was under load and it would core dump. > One way to fix this would be to change locations to specific types. If > we want to take it a step further the buffer and location could be > combined and given a specific type simplifying the APIs. > Example of combining buffer and location and making specific types (IMO > cleaner): > tsapi TSReturnCode TSHttpTxnClientReqGet(TSHttpTxn txnp, TSRequest > *request); > tsapi TSReturnCode TSHttpHdrUrlGet(TSRequest request, TSUrl *url); > tsapi const char* TSUrlSchemeGet(TSUrl url, int *length); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira